我遇到了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:missing keyword” 我找不到可能是这个丢失的关键字,我尝试了几个更改但总是出现相同的错误。 我重用了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;
看,我只是改变它的结尾。 那么这里有什么问题?我错过了什么吗? (如果有明显的东西,请不要抨击:)) 谢谢!
答案 0 :(得分:1)
Oracle不支持外键的ON UPDATE
子句。
请参阅手册中REFERENCES
子句的说明:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/clauses002.htm#CJAIHHGC
答案 1 :(得分:0)
尝试删除命令末尾的DISABLE
/ ENABLE
根据ADD CONSTRAINT reference,似乎没有任何“启用/禁用”作为命令的一部分。
我认为这是Oracle开发人员最后添加的内容(it being part of Oracle Syntax),可能会导致问题!