MySQL - 无法创建 1:1 关系
Posted
技术标签:
【中文标题】MySQL - 无法创建 1:1 关系【英文标题】:MySQL - Trouble to create a 1:1 relationship 【发布时间】:2020-09-02 18:23:31 【问题描述】:我正在尝试在 mysql Workbench 中创建 1:1 关系(不使用 Diagram)。我有两个名为agricultural_machine
和tractor
的表。我想要一个 1:1 的关系,即 agricultural_machine_id
被 tractor_id
引用。
农业机器表中的外键
拖拉机桌上的外键
图表是这样形成的
我想要这个
【问题讨论】:
【参考方案1】:为了实现真正的 1:1 关系,您需要可延迟的约束。这意味着在这种情况下,当您在另一个表中插入“另一行”时,需要在短时间内忽略外键约束(可能直到事务结束)。插入两行后,现在可以重新激活和验证外键约束。否则,您首先插入哪一行?任何插入都会失败,因为 FK 不会被验证。
不幸的是 MySQL 没有实现这个标准 SQL 特性,所以你将无法做到。您需要将数据库更改为 PostgreSQL 或 Oracle 以实现 1:1 关系。
【讨论】:
以上是关于MySQL - 无法创建 1:1 关系的主要内容,如果未能解决你的问题,请参考以下文章