【问题标题】:Older SQL servers and referential integrity thru foreign keys较旧的 SQL 服务器和通过外键实现的参照完整性
【发布时间】:2018-09-26 13:47:10
【问题描述】:

我试图了解参照完整性,即在实体和关系表之间使用外键。

关系模式由 3 个表组成:

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

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

如果我对参照完整性的理解是正确的,如果我在 SP 表中输入了一个非法条目(在 S 或 P 的主键中不存在的条目),例如“S7”,他们不应该是否因为 S 表中没有“S7”而发生错误?是因为服务器类型可能已经过时并且没有恢复完整性还是我理解不正确?

【问题讨论】:

    标签: mysql database referential-integrity


    【解决方案1】:

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

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

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

    【讨论】:

    • Mike Sherrill 感谢您的澄清。我一直觉得它应该限制这些信息,因为它没有引用父表中的任何内容。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 2014-04-28
    相关资源
    最近更新 更多