我试图了解引用完整性,即实体和关系表之间外键的使用。
关系模式由 3 个表组成:
- 供应商(S),
- 零件 (P) 和
- 每个人购买的数量 (SP)。
每个中的主键是 S 中的 SNum、P 中的 PNum 以及 SP 中 SNum 和 PNum 的复合主键和外键,引用各自的表。
如果我对参照完整性的理解是正确的,如果我要在 SP 表中输入一个非法条目(S 或 P 的主键中不存在的条目),例如“S7”,他们不应该这样做吗?是因为S表中没有“S7”而发生错误吗?是否因为服务器类型可能已过时并且无法保持完整性或者我理解不正确?
最佳答案
MyISAM存储引擎不支持外键约束。它们将被解析,然后被忽略。
参见https://dev.mysql.com/doc/refman/5.7/en/myisam-storage-engine.html
您可以运行show create table tablename
来查看您正在使用哪个存储引擎。您几乎肯定应该使用 InnoDB engine .
关于mysql - 较旧的 SQL 服务器和通过外键的引用完整性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49863769/