Sql 无法删除约束-不存在约束
我试图删除表中的约束,如fk和pk,但这会引发一个错误 无法删除约束-不存在约束 但是,当我检查是否存在约束时,它表明存在约束,但该拖放仍然不起作用Sql 无法删除约束-不存在约束,sql,oracle,alter,Sql,Oracle,Alter,我试图删除表中的约束,如fk和pk,但这会引发一个错误 无法删除约束-不存在约束 但是,当我检查是否存在约束时,它表明存在约束,但该拖放仍然不起作用 select column_name,constraint_name from user_cons_columns where table_name='EMP'; COLUMN_NAME CONSTRAINT_NAME ------------------------------ EMPNO PK_EMP DEPTNO FK
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[NameOfTable]Drop Constraint[NameOfConstraint]语法要求表中包含外键和约束名称。在多次遇到同一问题后,我尝试同时调用这两个问题,以确保我没有意外调用错误的表 更改[NameOfTable]删除约束[NameOfConstraint]尝试以下操作:
ALTER TABLE EMP DROP CONSTRAINT FK_DEPTNO;
试试这个:
ALTER TABLE EMP DROP CONSTRAINT FK_DEPTNO;
当您试图在子表中删除约束,但约束实际上存在于父表中时,就会发生这种情况。这就是为什么你被证明不存在约束。将您带到所需表的查询如下:
select TABLE_NAME from dba_cons_columns where CONSTRAINT_NAME='constraint_name';
#结果
表名称
------------------------------
表名称
现在从结果表中禁用/删除该约束
ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
# Table altered.
当您试图在子表中删除约束,但它实际上存在于父表中时,就会发生这种情况。这就是为什么你被证明不存在约束。将您带到所需表的查询如下:
select TABLE_NAME from dba_cons_columns where CONSTRAINT_NAME='constraint_name';
#结果
表名称
------------------------------
表名称
现在从结果表中禁用/删除该约束
ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
# Table altered.
尝试更改表emp drop constraint FK_DEPTNO而不是
DEPTNO
。看起来您调用的是列名而不是约束名。请尝试使用alter table emp drop constraint FK_DEPTNO
而不是DEPTNO
。看起来您调用的是列名而不是约束名。您好,请在回答中添加一些口头解释您好,请在回答中添加一些口头解释