一尘不染

MySQL中外键的基础?

mysql

关于如何使用MySQL的外键构造有什么好的解释?

我不太了解MySQL文档本身。到目前为止,我一直在通过联接和编程代码处理诸如外键之类的事情。

问题的第二部分,使用MySQL的内置外键是否有任何改进?


阅读 205

收藏
2020-05-17

共1个答案

一尘不染

FOREIGN KEYS 只要确保您的数据是一致的。

他们没有从效率上改善查询,只是使一些错误的查询失败。

如果您有这样的关系:

CREATE TABLE department (id INT NOT NULL)
CREATE TABLE employee (id INT NOT NULL, dept_id INT NOT NULL, FOREIGN KEY (dept_id) REFERENCES department(id))

,那么你就不能删除department,如果它有一些employee的。

如果你提供ON DELETE CASCADEFOREIGN KEY定义,引用行会自动与引用的那些一起被删除。

作为约束,FOREIGN KEY实际上会使查询变慢了一点。

从引用表中删除或插入引用表时,需要执行额外的检查。

2020-05-17