无法删除外键(Oracle)

发布于 2024-11-25 05:30:20 字数 367 浏览 2 评论 0原文

我正在尝试删除表的所有外键。首先,我使用 meta.getExportedKeys(null, null, table);rs.getString("FK_NAME") 获取这些键的所有名称。

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

ALTER TABLE tablename DROP CONSTRAINT fkname

它仅适用于某些键。有时我会得到:

ORA-02443: Cannot drop constraint - nonexistent constraint

但是外键肯定是存在的。我做错了什么?

I'm trying to delete all foreign keys of a table. First I get all the names of those keys using meta.getExportedKeys(null, null, table); and rs.getString("FK_NAME").

But when I try to delete this key using:

ALTER TABLE tablename DROP CONSTRAINT fkname

it only works for some keys. Sometimes I'm getting:

ORA-02443: Cannot drop constraint - nonexistent constraint

But the foreign key is definitely there. What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒与心事 2024-12-02 05:30:20

你尝试

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>

Have you tried

ALTER TABLE tablename DROP CONSTRAINT "fkname";

instead?

You might have created the constraint in a case-sensitive way, in which case, you'll need to put the constraint name in double quotes when you drop it. Here's an example session in 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文