【问题标题】:why should i set foreign keys in mysql [duplicate]我为什么要在mysql中设置外键[重复]
【发布时间】:2016-06-02 07:33:54
【问题描述】:

如果我的表中只有一些外键并且它们没有设置任何约束并且我不会设置任何 CASCADE DELETE ,我为什么要设置像 FOREIGN KEY (a) REFERENCES b(c) 这样的外键?

如果您不设置级联删除或更新,设置外键的目的是什么?语义?使查询更快?

谢谢

【问题讨论】:

  • 如果你使用 Innodb 作为存储引擎,它会自动索引外键。
  • 基本上,强制数据完整性。您不想要未知客户的订单,就像您不想要 31st Feb 之类的日期或 Yellow 之类的数字一样。

标签: php mysql sql foreign-keys


【解决方案1】:

外键实际上对性能没有帮助,但成本会更高,因为它必须强制约束。

它用于数据完整性和防止破坏性写入。随着数据库的增长变得更加重要

【讨论】:

  • 将此It is there to prevent destructive write and data integrity 编辑为It is there for data integrity and to prevent destructive write。就像现在听起来那样,它可以防止破坏性写入和数据完整性。除此之外,谢谢您的回答。
猜你喜欢
  • 2014-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多