0

我的 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;

看,我只是改变它的结尾。那么这是怎么回事?我错过了什么吗?(如果很明显,请不要抨击:))谢谢!

4

2 回答 2

1

Oracle 不支持ON UPDATE外键子句。

参见REFERENCES手册中条款的描述:http:
//download.oracle.com/docs/cd/B19306_01/server.102/b14200/clauses002.htm#CJAIHHGC

于 2011-04-07T06:42:29.240 回答
0

尝试删除命令末尾的DISABLE/ENABLE

根据ADD CONSTRAINT 参考,似乎没有任何“启用/禁用”作为命令的一部分。

我认为这是您的 Oracle 开发人员最后添加的内容(它是 Oracle 语法的一部分),它可能会导致问题!!

于 2010-10-11T10:49:11.813 回答