如果你永远不会改变一个ID(更好地说:主键字段),是否有任何理由在数据库中使用约束条件ON UPDATE
?使用ON UPDATE约束的原因
0
A
回答
0
InnoDB允许外键引用任何索引列或一组列。因此,仅当您从未更改引用字段(而不是主键)时,则可以忽略此问题。
除此之外,如果你不需要它,不要使用它。注意:缺省行为(即,如果您省略ON UPDATE
子句)是拒绝引用字段上的任何更新,从而防止您在不知不觉中破坏参照完整性。
+0
谢谢。我认为一个*被引用的字段*应该始终是主关键字或其在n:m关系表中的一部分,对吧? – stofl 2013-04-08 16:39:05
+1
@stofl是的,我可以想到没有必要更新代理键(最常见的主键类型)的情况。不过,让我来推荐你[这个答案](http://stackoverflow.com/a/1481611/1446005)。 – RandomSeed 2013-04-09 08:09:10
相关问题
- 1. Mysql“ON UPDATE”约束删除我的行
- 2. Hibernate设置约束“ON UPDATE CASCADE”
- 3. PK约束UPDATE
- 4. 延误的原因是外键约束
- 5. 外部约束失败原因不明
- 6. 外键约束消失的原因
- 7. 在外键约束中获取ON DELETE ON UPDATE操作
- 8. 使用@EmbeddedId和@MapsId原因NULL插入(违反NOT NULL约束)
- 9. 有两个外键约束引用同一个主键,都使用ON UPDATE CASCADE
- 10. 如何在Doctrine 2中添加约束`on-update-cascade`
- 11. TRIGGER模拟约束UPDATE选项
- 12. JPA和原生FK约束
- 13. UPDATE上的SQL NULL约束只有
- 14. Ruby on Rails滤除约束
- 15. Ruby On Rails - 路由约束
- 16. SQL约束和ON DELETE
- 17. 重复的外键约束 - 导致或反对的原因
- 18. Xcode'NSGenericException',原因:'无法在视图上安装约束
- 19. 数据库插入失败的原因为外键约束
- 20. UPDATE语句与FOREIGN KEY约束冲突
- 21. 正确使用ON CASCADE UPDATE?
- 22. NSInvalidArgumentException',原因:'无法解析约束格式:
- 23. 什么原因INSERT语句与FOREIGN KEY约束冲突?
- 24. 'NSInvalidArgumentException',原因:'无法解析约束格式
- 25. 使用由于外键约束导致的INSERT和UPDATE语句来禁用外键约束
- 26. 约束使用DATE
- 27. 如何使用另一个表更新具有ON UPDATE RESTRICT外键约束的主键?
- 28. Codeigniter使用ON DUPLICATE KEY UPDATE的方式
- 29. 使用contentLayoutGuide的约束
- 30. 引发QLSTATE的唯一约束[23000]:完整性约束违规:1062因为唯一约束而重复
检查此链接可能会帮助您http://stackoverflow.com/questions/1481476/when-to-use-on-update-cascade – 2013-04-08 16:16:10
谢谢。似乎没有理由(如果ID不改变)。我想说,俱乐部/乐队/音乐会的答案是糟糕的数据库设计。 – stofl 2013-04-08 16:34:25