[英]Cannot drop constraint - nonexistent constraint
我试图在我的表中删除约束,如 fk 和 pk 但它会引发错误。
无法删除约束 - 不存在的约束
但是当我检查是否有约束时,它表明有一个约束,但仍然不工作。
select column_name,constraint_name from user_cons_columns where table_name='EMP';
COLUMN_NAME CONSTRAINT_NAME
------------------------------
EMPNO PK_EMP
DEPTNO FK_DEPTNO
alter table emp drop constraint deptno;
第 1 行出现错误:ORA-02443:无法删除约束 - 不存在约束
尝试这个:
ALTER TABLE EMP DROP CONSTRAINT FK_DEPTNO;
alter table emp drop constraint fk_deptno;
该语法需要具有外键和约束名称的表。 在多次遇到同一个问题后,我尝试同时调用两者以确保我不会意外调用错误的表。
更改 [NameOfTable] 删除约束 [NameOfConstraint]
当您尝试在子表中删除约束但它实际上存在于父表中时,就会发生这种情况。 这就是为什么你会看到不存在的约束。 将您带到所需表的查询如下:
select TABLE_NAME from dba_cons_columns where CONSTRAINT_NAME='constraint_name';
# result
TABLE_NAME
------------------------------
table_name
现在您从结果表中禁用/删除该约束。
ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
# Table altered.
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
# Table altered.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.