2010-10-11 94 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