同时插入具有主键和外键的表

时间:2016-07-18 22:04:33

标签: sql constraints oracle-sqldeveloper insert-into

非常新的SQL,已经花了一天时间。

以下是我的两张表:

中心(cid,名称,位置,护士_主管) 护士(nid,姓名,centre_id,证书)

我有一个大问题。 Center中的(nurse_supervisor)是Nurse(nid)的外键。 护士中的(centre_id)是(中心cid)的外键。

我无法弄清楚如何填充这些表格。我试过了: INSERT ALL,产生“外键值没有匹配的主键值” 我已经尝试删除外键约束并在填充表后添加它们,但是当我这样做时它表示我不能向具有预先存在的数据的表添加约束。 我尝试删除NOT NULL - 但意识到这很愚蠢,因为无论如何都会强制执行约束。

我查看的所有内容都首先填充父表,然后填充子表,但这些表彼此链接。

我正在使用SQL开发人员。

1 个答案:

答案 0 :(得分:1)

这是一种糟糕的架构设计,但解决它的一种方法是:

  1. 在两个表定义中使centre_idnurse_supervisor列都为NULL
  2. 将所有行插入两个表中,但对于这两列使用NULL
  3. centre_id更新为Nurse
  4. 中每行的正确值
  5. nurse_supervisor更新为Centre
  6. 中每行的正确值