较旧的SQL服务器和引用完整性通过外键

时间:2018-04-16 18:13:34

标签: mysql database referential-integrity

我试图通过在实体和关系表之间使用外键来理解参照完整性。

关系模式由3个表组成:

  • 供应商(S),
  • 零件(P)和
  • 每个人购买的数量(SP)。

每个中的主键是S中的SNum,P中的PNum以及SP中SNum和PNum的复合主键和外键,引用它们各自的表。

如果我对参照完整性的理解是正确的,如果我要输入SP表中的非法条目(S或P中的主键中不存在的条目),例如“S7”,则不应该是因为S表中没有“S7”而发生错误?是因为服务器类型可能已过时而没有提升完整性或者我不正确理解?

1 个答案:

答案 0 :(得分:0)

MyISAM存储引擎不支持外键约束。它们将被解析,然后被忽略。

请参阅https://dev.mysql.com/doc/refman/5.7/en/myisam-storage-engine.html

您可以运行show create table tablename来查看您正在使用的存储引擎。您几乎肯定会使用InnoDB engine