首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试添加外键时出现ORA-00905错误

尝试添加外键时出现ORA-00905错误
EN

Stack Overflow用户
提问于 2010-12-30 05:37:29
回答 3查看 1.6K关注 0票数 2

我尝试在oracle中执行以下语句:

代码语言:javascript
复制
alter table COMENTARIO
add constraint FK_COMENTARIO_DI foreign key (DI_ID)
  references DATO_DE_INTERES (DI_ID) ON UPDATE CASCADE ON DELETE SET NULL;

但是,我发现ORA-00905缺少关键字。

但是,当我删除ON UPDATE语句时,该命令可以正常工作,没有任何问题。为什么会这样呢?如果我不能在UPDATE上使用,有什么选项吗?事先谢谢你!

EN

回答 3

Stack Overflow用户

发布于 2010-12-30 05:54:51

级联约束没有"ON UPDATE“子句。除了某种应用程序强制执行或触发器之外,我不知道还有什么其他选择。

票数 2
EN

Stack Overflow用户

发布于 2010-12-30 05:55:45

Oracle中没有ON UPDATE CASCADE这样的选项。也许你可以告诉我为什么你需要这样做,而不是寻找一种方法来实现这一点(我认为使用ON UPDATE触发器是可能的)。我的意思是--为什么要更新DATO_DE_INTERES的主键呢?

票数 1
EN

Stack Overflow用户

发布于 2010-12-30 06:07:13

在Oracle中,约束定义中没有ON UPDATE子句。在绝大多数情况下,你不会想要实现这个“以防万一”,因为主键应该是不可变的。如果您的主键不是不可变的,这通常表示存在数据模型问题,应该解决而不是编码。

也就是说,如果你真的想实现这样的东西,Tom Kyte确实有一个update cascade package。但是,您最好在设计系统时首先避免问题,而不是在这种复杂程度上进行设计。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4558075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档