Sql 无法删除约束-不存在约束

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

我试图删除表中的约束,如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[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
。看起来您调用的是列名而不是约束名。您好,请在回答中添加一些口头解释您好,请在回答中添加一些口头解释