我尝试删除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)
似乎返回正确的输出。
在SQL语言中,标识符名称不能是表达式。您需要运行两个语句:
select distinct constraint_name from information_schema.constraints
where table_name='PUBLIC_PARTNER' and column_list='INFO'
然后获取标识符名称,并运行该语句
ALTER TABLE PUBLIC_PARTNER DROP CONSTRAINT <xxx>
CREATE语句中有以下约束: 这些用于删除约束的命令在MySQL中有效,但在H2中无效: 我需要一个在MySQL和H2中都能工作的命令(MySQL在真实环境中使用,H2在单元测试中使用)
问题内容: 如何使用phpMyAdmin在MySQL表的列上删除“唯一键约束”? 问题答案: 唯一约束也是索引。 首先使用来查找索引的名称。索引的名称存储在该查询结果中调用的列中。 然后,您可以使用DROP INDEX: 或ALTER TABLE语法:
我有这样布局的模型: 这里的场景是我永远不希望用户删除数据。相反,删除只会隐藏记录。但是,我仍然希望所有非软删除的记录都遵循唯一的键约束。基本上,我希望有尽可能多的重复的已删除记录,但只有一个唯一的未删除记录可以存在。所以我本来想包括“已删除”字段(由django安全删除库提供),但问题是Django的唯一检查因“psycopg2”而失败。完整性错误:重复的键值违反了 ['field2', 'fi
问题内容: 我正在将SEAM 2 / Hibernate与PostgreSQL 9数据库一起使用。我有下表 我想添加一个约束,以确保每个新条目都具有active_band_user和active_band_date的唯一组合。 每秒可能有许多次尝试插入,因此我需要尽可能地提高效率,是否可以在实体映射中使用SEAM /hibernate注释? 提前致谢 问题答案: 没有Hibernate注释在插入/
问题内容: 给定Postgres数据库中的以下三列:第一,第二,第三;我如何创建一个约束使得排列是唯一的? 例如,如果数据库中存在,则将其作为非唯一变量排除在外。 问题答案: 您可以使用hstore创建唯一索引: 更新 实际上
问题内容: 我想将唯一键放到如何? 问题答案: 只需使用以下SQL脚本即可删除MySQL中的索引: