0

我需要在 STAFF 表中添加两个约束 WORK_ADDRESS_ID 和 HOME_ADDRESS_ID 引用 ADDRESS 表中的 ADDRESS_ID,但由于以下原因,TABLE 操作似乎不成功: ORA-02298:无法验证(LIP12YJ.STAFF_CON) - 找不到父键应该做什么我愿意?

4

1 回答 1

0

该错误表明STAFF表中存在引用ADDRESS_ID不在ADDRESS表中的数据。不幸的是,从约束的名称来看,问题是出在WORK_ADDRESS_ID列中的数据还是出在列中的数据上并不明显HOME_ADDRESS_ID。但是检查两者都很容易

SELECT *
  FROM staff s
 WHERE NOT EXISTS( SELECT 1 
                      FROM address a
                     WHERE a.address_id = s.work_address_id )

将向您显示STAFF表中具有表WORK_ADDRESS_ID中不存在的所有行ADDRESS。相似地,

SELECT *
  FROM staff s
 WHERE NOT EXISTS( SELECT 1 
                      FROM address a
                     WHERE a.address_id = s.home_address_id )

将向您显示STAFF表中具有表HOME_ADDRESS_ID中不存在的所有行ADDRESS

于 2013-04-29T16:11:26.950 回答