通常在刪除某個表A的時候,會出現這個錯誤。原因是另一個表B的某個字段引用了A表的某個字段作為約束(這個的另一個說法是外鍵)。
假如引用的字段叫field,當B.field = A.field , 而你想刪掉A.field,這時就爆出這個錯誤。解決辦法是先把B.field (B.field = A.field的部分) 干掉,再干掉你想刪除的A.field
問題是,如何知道哪個表引用了A表的field字段或其他字段?報錯信息里並沒有給出,只給出了約束的名稱。這時可以查all_constraints。
select table_name from all_constraints where constraint_name = '約束的名稱' (一般如 FK_xxx)
查看選出的table_name 就知道索引了A的哪個字段。