Проблема с оператором SQL

У меня проблема с оператором SQL. Я хочу активировать поведение "ON UPDATE CASCADE" для внешнего ключа в таблице с помощью этого оператора:

ALTER TABLE "DB"."RECORD" ADD CONSTRAINT "RECORD_PT_OUTIL_FK1" FOREIGN KEY ("CDE_PO")
REFERENCES "DB"."PT_OUTIL" ("CDE_PO") ON UPDATE CASCADE ENABLE;

Но когда я запускаю оператор в Oracle Developer, я просто получаю сообщение об ошибке: "ORA-00905: отсутствует ключевое слово". Я не могу найти то, что может быть этим пропущенным ключевым словом, я пробовал несколько изменений, но всегда возникает одна и та же ошибка. Я сам использую код, сгенерированный Oracle Developer, и просто изменяю его так, как я хочу. Это сгенерированный код:

ALTER TABLE "DB"."RECORD" ADD CONSTRAINT "RECORD_PT_OUTIL_FK1" FOREIGN KEY ("CDE_PO")
REFERENCES "DB"."PT_OUTIL" ("CDE_PO") ON DELETE CASCADE DISABLE;

Видишь, я просто изменил конец. Так в чем тут дело? Я что-то пропустил? (пожалуйста, не ругайтесь, если это что-то очевидно:)) Спасибо!

2 ответа

Oracle не поддерживает ON UPDATE пункт для внешних ключей.

Смотрите описание REFERENCES пункт в руководстве:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/clauses002.htm

Попробуйте, удалив DISABLE/ ENABLE в конце вашей команды

Что касается ссылки ADD CONSTRAINT, кажется, что в составе команды нет никаких "Включить / Отключить".

Я думаю, что это то, что ваш разработчик Oracle добавляет в конце ( это является частью синтаксиса Oracle), и это может быть причиной проблемы!!

Другие вопросы по тегам