我试图在h2数据库中删除一个先前创建的带有info varchar(255) unique
约束的列的唯一约束。
我尝试过:
sql> alter table public_partner drop constraint (select distinct unique_index_name from in
formation_schema.constraints where table_name='PUBLIC_PARTNER' and column_list='INFO');
但是没有成功(如下):
Syntax error in SQL statement "ALTER TABLE PUBLIC_PARTNER DROP CONSTRAINT ([*]SELECT DISTI
NCT UNIQUE_INDEX_NAME FROM INFORMATION_SCHEMA.CONSTRAINTS WHERE TABLE_NAME='PUBLIC_PARTNER
' AND COLUMN_LIST='INFO') "; expected "identifier"; SQL statement:
alter table public_partner drop constraint (select distinct unique_index_name from informa
tion_schema.constraints where table_name='PUBLIC_PARTNER' and column_list='INFO') [42001-1
60]
这个限制应该如何正确地删除?
顺便说一下:
sql> (select unique_index_name from information_schema.constraints where table_name='PUBLI
C_PARTNER' and column_list='INFO');
UNIQUE_INDEX_NAME
CONSTRAINT_F574_INDEX_9
(1 row, 0 ms)
看起来返回了正确的输出。
select distinct constraint_name from information_schema.constraints where table_name='PUBLIC_PARTNER' and column_list='INFO'
。您还可以通过添加AND constraint_type = 'UNIQUE'
来进一步限制约束类型。顺便说一下,我的H2版本是1.3.166。 - MartinGrotzke