我是處於工作中沒用過oracle的狀態,這不,記錄下這個小小的問題。哈哈。
表是公司的平台組定義的。前幾天為了測試程序,想刪掉一些記錄,然后使用delete語句,出現這個東東:oracle ORA-02292: 違反完整約束條件 (TEST.FK_H3K23R74VBBA62WXJB512P0PB) - 已找到子記錄出現原因是這個表的某個column被當成了別的表的外鍵,真的是尷尬,說實話,工作以來,沒遇到有公司用外鍵來維護表關系的。
先使用sql語句查出到底是哪一個表“約束”了"FK_H3K23R74VBBA62WXJB512P0PB",它其實就是另一張表依賴這張表的外鍵名
SELECT A .constraint_name, A .table_name, b.constraint_name FROM user_constraints A, user_constraints b WHERE A .constraint_type = 'R'
AND b.constraint_type = 'P'
AND A .r_constraint_name = b.constraint_name AND A .constraint_name = UPPER ( 'FK_H3K23R74VBBA62WXJB512P0PB' )
執行結果
然后去找表NOTESERIALNUMBER,果然,用了外鍵,汗