今天遇到一个问题,在数据库中删除一条记录,但是在删除的时候报错了,报出该记录已经被其他子记录引用,想了好久不知道怎么做,后来发现报错提示信息中会提示删除该记录时影响了那个约束条件,于是思路出来了:
1、知道了约束名称,怎么知道这个约束是作用于哪张表、那个字段上的啊
2、找到了这张表,看看那个字段的约束用到了这个约束名
3、如果这条记录时无用的,那么引用这条记录的其他自己录也应该没用了
于是查找怎么根据约束名称找到相应的表、字段,那么下面这句SQL就能根据约束名找到相应的表:
1 SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'PK_MEDIA' ;
查询出来的记录集如下图:
这样我们就找到了这张表,通过查询字段就可以知道是哪个字段的约束了。
方法比较笨,如果有什么好的办法,留言吧。
如下图:
删除某记录时会报错:
鼠标右击信息框的文字就可以进行复制,括号里面就是受影响的约束。
MIXCOALDB.FK2D61297D54D584B:MIXCOALDB-数据库名称,FK2D61297D54D584B-约束名称