Не удается удалить внешний ключ (Oracle) - PullRequest
1 голос
/ 20 июля 2011

Я пытаюсь удалить все внешние ключи таблицы.Сначала я получаю все имена этих ключей, используя meta.getExportedKeys(null, null, table); и rs.getString("FK_NAME").

Но когда я пытаюсь удалить этот ключ, используя:

ALTER TABLE tablename DROP CONSTRAINT fkname

, он работает только для некоторых ключей.Иногда я получаю:

ORA-02443: Cannot drop constraint - nonexistent constraint

Но внешний ключ определенно есть.Что я делаю не так?

1 Ответ

5 голосов
/ 20 июля 2011

Вы пробовали

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...