jha*_*sse 1 oracle constraints jdbc foreign-keys
我正在尝试删除表的所有外键.首先,我使用meta.getExportedKeys(null, null, table);和获取这些键的所有名称rs.getString("FK_NAME").
但是当我尝试删除此密钥时使用:
ALTER TABLE tablename DROP CONSTRAINT fkname
Run Code Online (Sandbox Code Playgroud)
它只适用于某些键.有时我会得到:
ORA-02443: Cannot drop constraint - nonexistent constraint
Run Code Online (Sandbox Code Playgroud)
但外键确实存在.我究竟做错了什么?
你有没有尝试过
ALTER TABLE tablename DROP CONSTRAINT "fkname";
Run Code Online (Sandbox Code Playgroud)
代替?
您可能以区分大小写的方式创建了约束,在这种情况下,您需要在删除时将约束名称放在双引号中.这是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>
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |