删除被引用的数据时,会被报错,请问能不能事先就知道该数据是被引用的,那样我就可以提示不能删除.

来源:百度知道 编辑:UC知道 时间:2024/04/29 23:11:42
我不想做级联删除,所以在数据被删之前如果能用个什么方法知道这条数据已经被引用,那么会比较好,
因为当我捕获删除被引用数据的异常之后,将不能对报错的那个表再进行任务操作,好像表被锁了,不知道哪位有好的建意?
除了查看以外还有别的方法吗?
我觉得这个法子太被动了

方法有两个
1.根据外键关系查询数据是否被引用。
2.捕获删除被引用数据的异常之后,利用 try catch,在catch做数据回滚操作。

查询关联的表,比如被引用的表为User,主键userId

那你就查询引用其主键的表,返回一个boolean的结果,查看
是否存在引用。
比如:public boolean isExist(Long userId){
sql = "select count(*) from *** where userId='"+userId+"'";
如果这个结果返回值大于等于1,就存在引用了。
}