同时插入到具有主键和外键的表中
Insert into tables with primary and foreign key at same time
SQL 还很陌生,已经用了一天时间。
这是我的两个 table:
中心(cid,名称,位置,nurse_supervisor)
护士(姓名,centre_id,证书)
我有一个大问题。 Center 中的 (nurse_supervisor) 是 Nurse (nid) 的外键。
Nurse 中的 (centre_id) 是 (Centre cid) 的外键。
我不知道如何填充这些 table。我试过了:
INSERT ALL,产生 "A foreign key value has no matching primary key value"
我曾尝试删除外键约束并在填充 tables 后添加它们,但是当我这样做时它说我无法使用预先存在的数据向 tables 添加约束。
我尝试删除 NOT NULL - 但意识到这很愚蠢,因为无论如何都会强制执行约束。
我浏览的所有内容都说先填充父 table,然后再填充子,但是这些 table 是相互链接的。
我正在使用 SQL 开发人员。
这是一个糟糕的架构设计,但解决它的一种方法是:
- 在两个 table 定义中使
centre_id
和 nurse_supervisor
列都为 NULL
- 将所有行插入到两个 table 中,但这两列为 NULL
- 将
centre_id
更新为 Nurse
table 中每一行的正确值
- 将
nurse_supervisor
更新为 Centre
table 中每一行的正确值
SQL 还很陌生,已经用了一天时间。
这是我的两个 table:
中心(cid,名称,位置,nurse_supervisor) 护士(姓名,centre_id,证书)
我有一个大问题。 Center 中的 (nurse_supervisor) 是 Nurse (nid) 的外键。 Nurse 中的 (centre_id) 是 (Centre cid) 的外键。
我不知道如何填充这些 table。我试过了: INSERT ALL,产生 "A foreign key value has no matching primary key value" 我曾尝试删除外键约束并在填充 tables 后添加它们,但是当我这样做时它说我无法使用预先存在的数据向 tables 添加约束。 我尝试删除 NOT NULL - 但意识到这很愚蠢,因为无论如何都会强制执行约束。
我浏览的所有内容都说先填充父 table,然后再填充子,但是这些 table 是相互链接的。
我正在使用 SQL 开发人员。
这是一个糟糕的架构设计,但解决它的一种方法是:
- 在两个 table 定义中使
centre_id
和nurse_supervisor
列都为 NULL - 将所有行插入到两个 table 中,但这两列为 NULL
- 将
centre_id
更新为Nurse
table 中每一行的正确值
- 将
nurse_supervisor
更新为Centre
table 中每一行的正确值