Dropping unique constraint for column in H2
database, h2, sql
Solution
In the SQL language, identifier names can't be expressions. You need to run two statements:
select distinct constraint_name from information_schema.constraints
where table_name='PUBLIC_PARTNER' and column_list='INFO'
and then get the identifier name, and run the statement
ALTER TABLE PUBLIC_PARTNER DROP CONSTRAINT <xxx>
Problem
I try to drop unique constraint for column in h2, previously created as `info varchar(255) unique`. I tried: ``` 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'); ``` But with no success (as follows): ``` 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] ``` How this constraint should be correctly removed? By the way: ``` 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) ``` seems to return a correct output.