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