无法删除外键(Oracle)

无法删除外键(Oracle),oracle,jdbc,foreign-keys,constraints,Oracle,Jdbc,Foreign Keys,Constraints,我正在尝试删除表的所有外键。首先,我使用meta.getExportedKeysnull、null、table获取这些键的所有名称;和rs.getStringFK_名称 但当我尝试使用以下命令删除此密钥时: ALTER TABLE tablename DROP CONSTRAINT fkname 它只适用于某些键。有时我会: ORA-02443: Cannot drop constraint - nonexistent constraint 但是外键肯定在那里。我做错了什么?你试过了吗 AL

我正在尝试删除表的所有外键。首先,我使用meta.getExportedKeysnull、null、table获取这些键的所有名称;和rs.getStringFK_名称

但当我尝试使用以下命令删除此密钥时:

ALTER TABLE tablename DROP CONSTRAINT fkname
它只适用于某些键。有时我会:

ORA-02443: Cannot drop constraint - nonexistent constraint
但是外键肯定在那里。我做错了什么?你试过了吗

ALTER TABLE tablename DROP CONSTRAINT "fkname";
相反

您可能已经以区分大小写的方式创建了约束,在这种情况下,您需要在删除约束名称时将其置于双引号中。下面是SQL*Plus中的一个示例会话:

SQL> create table test (a integer); Table created. SQL> alter table test add constraint "abcd" unique (a); Table altered. SQL> alter table test drop constraint abcd; alter table test drop constraint abcd * ERROR at line 1: ORA-02443: Cannot drop constraint - nonexistent constraint SQL> alter table test drop constraint "abcd"; Table altered. SQL> 你试过了吗

ALTER TABLE tablename DROP CONSTRAINT "fkname";
相反

您可能已经以区分大小写的方式创建了约束,在这种情况下,您需要在删除约束名称时将其置于双引号中。下面是SQL*Plus中的一个示例会话:

SQL> create table test (a integer); Table created. SQL> alter table test add constraint "abcd" unique (a); Table altered. SQL> alter table test drop constraint abcd; alter table test drop constraint abcd * ERROR at line 1: ORA-02443: Cannot drop constraint - nonexistent constraint SQL> alter table test drop constraint "abcd"; Table altered. SQL>
另一种可能性是拥有约束的表位于不同的模式中。例如,模式FRED包含表“A”和“B”,并且“B”上的约束指向Fredath拥有的表“A”。另一种可能性是拥有该约束的表位于不同的模式中。例如,模式FRED包含表“A”和“B”,并且“B”上的约束指向FREDA拥有的表“A”