Sql ORACLE-启用唯一约束问题(相同的约束名称,多个架构)
我在尝试重新启用唯一约束时遇到问题。我尝试使用以下命令:Sql ORACLE-启用唯一约束问题(相同的约束名称,多个架构),sql,oracle,unique-constraint,alter-table,Sql,Oracle,Unique Constraint,Alter Table,我在尝试重新启用唯一约束时遇到问题。我尝试使用以下命令: alter table TESTSCHEMA_1.TEST_TABLE1 enable constraint TEST_UNIQUE_CONSTRAINT1; 问题是我有多个模式(比如:TESTSCHEMA_1到_5),它们都有同名的表TEST_TABLE1,也有同名的唯一约束TEST_Unique_CONSTRAINT1 因此,我得到以下错误: ORA-02299:无法验证(TESTSCHEMA_1.TEST_UNIQUE_CONST
alter table TESTSCHEMA_1.TEST_TABLE1 enable constraint TEST_UNIQUE_CONSTRAINT1;
问题是我有多个模式(比如:TESTSCHEMA_1到_5),它们都有同名的表TEST_TABLE1,也有同名的唯一约束TEST_Unique_CONSTRAINT1
因此,我得到以下错误:
ORA-02299:无法验证(TESTSCHEMA_1.TEST_UNIQUE_CONSTRAINT1)-找到重复的键
我如何明确指出要启用约束的模式?我尝试过使用TESTSCHEMA\u 1.TEST\u UNIQUE\u CONSTRAINT1,但它会引发语法错误(sql命令结尾不正确)检查数据的唯一性
select unique_column_in_test_table1, count(unique_column_in_test_table1) from TESTSCHEMA_1.TEST_TABLE1
group by unique_column_in_test_table1
having count(unique_column_in_test_table1) > 1
如果此查询返回任何行,则必须将其处理/更正为唯一。是否要删除现有的重复项?是否检查重复项?错误消息似乎在告诉您在dbms可以应用唯一约束之前解析重复的键。至于您的最后一个问题,您已经通过将
TESTSCHEMA_1
放在表名前面来指定架构。约束将与其父表位于同一架构中,因此您无需(也不能)再次指定它。我知道,当我收到错误时,我认为问题是因为多个架构具有相同名称的唯一约束,但它位于约束内的数据中。谢谢:)