2010-10-11 192 views
0

我遇到了SQL語句問題。 我要激活「ON UPDATE CASCADE」的行爲以表本聲明的外鍵:SQL語句問題

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開發人員的說法,我只是得到這個錯誤信息:「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; 

看,我只是改變它的結束。 那麼這裏有什麼問題?我錯過了什麼嗎? (請不要bash,如果這是明顯的東西:)) Thx!

回答

0

嘗試在你的命令

由於每ADD CONSTRAINT reference結束卸下DISABLE/ENABLE,那裏似乎沒有任何「啓用/禁用」作爲命令的一部分。

我認爲這是Oracle開發人員在最後添加的東西(it being part of Oracle Syntax),它可能導致問題!

+0

我嘗試,但還是同樣的錯誤消息。 – B1ll0u 2010-10-11 11:03:29

+0

我給你生成的DDL創建表,也許你會看到一些奇怪的東西......: – B1ll0u 2010-10-11 11:04:30

+0

@ B1ll0u - 你在MySQL中使用什麼數據庫引擎?有問題的表是使用MyISAM還是InnoDB? – InSane 2010-10-11 11:10:27