通常在删除某个表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的哪个字段。