A中有的,B,C中可以没有。
B,C中有的,必须A中先有。。

解决方案 »

  1.   

    但现在我已经把B,C中的都更新了,但A中为什么还不能更新呀?
      

  2.   

    A中m的值怎么没有在外部被引用?不是被表B、C作为外键引用了吗?
    oracle将B、C表更新新值后在更新A表时遇到完整性约束警告后将回滚,取消前面的B、C表的更新操作。这正是oracle的完整性约束、事务原子性和一致性的体现。
      

  3.   

    你确认你的B、C表的外键与A表的主键关联上了,能否把你的建表sql贴出来。
      

  4.   

    表A中m为引用码,B,C的m为外部码,依赖于表A中m
    定义约束时必须指定约束的“引用行为”,oracle默认为update/delete no action
    就是只要子表中有外部码依赖于主表中的某个引用码,主表中包含该引用码的记录不能被更新或删除.
      

  5.   

    既然有外键约束,就应该先更新a,然后b,c,不然要外键干什么呢!