虽然阿里不推荐使用MySQL外键,但是我们的项目如果对数据的一致性不太敏感,外键还是非常好的!减少数据库的数据冗余。如果对数据一致性有着非常高的要求,如:使用事务,那么强烈建议该表及关联表不要使用外键!
现有两张表:patrol(主表)、people(子表)。
patrol主表
people子表
people子表设置外键
数据:
patrol主表
people子表(pid是主表ID)
当我们设置了外键时,删除主表数据的同时会连同子表数据一并删除。
DELETE FROM patrol WHERE id = 1
执行语句后patrol主表id为1的数据被删除了,然后people子表pid为1的数据也删除了。