ssh + oracl 10g
做开发的时候,数据库的表之间的关系存在,你删除某条数据的时候数据库会报错,但是项目发布后,头说数据库的关系要删掉,有Hibernate维护就行了,这时候某些数据被删除的话会引起 其他与之相关的数据出错。不做删除的话,功能显得不全,请问这个问题怎么解决呢? 
或者说,怎么判断一个表的某条数据是不是被另一个表使用着呢?(没有数据库关系)

解决方案 »

  1.   

    有 表A(x,y),表B(y,z),现在B的y字段存的是A表的y的值,且两个表没有外键关系,现在我删除A时想知道y字段有没有被B表使用,怎么办?把B的表遍历一遍,看看y值是不是与A的y值相等?
      

  2.   


    你这不是多此一举吗?Oracle主外键就可以搞定的时候,为什么你还自己去查询呢?
    如果不用外键约束,那你就用SQL去查看吧delete from a where not exists (select 1 from b where y=a.y);
      

  3.   

    select * from A where exists(select 1 from B where a.y=b.y) 查找相同的delete from A where a.y not in(select y from A intersect select y from B) 删除A中A与B共有的