我有三个表A(主键ID),B(外键ID),C(外键ID)我想删出A表中的数据,通过外键把B表中的信息也删除掉,但要保留C表中的信息这要的要求可以用级联删除吗? on delete cascade 这个用法。
或者用触发器进行删除,还有其他的什么方法吗?
请高手们指教1

解决方案 »

  1.   

    我觉得C表中可以不建那个外键一定要保留C中外键的话,可以在删除的时候通过触发器事先备份到另一表D中
      

  2.   

    逻辑是这样的:
    先去掉C表的外键约束,然后删除B表外键,再删除A表的数据
    这种我觉得用存储过程处理好一些,当然也可以用触发器
      

  3.   


    C表不用创建外键关系,否则的话,删除A表中数据的时候,如果增加了on delete cascade级联删除的话,会自动删除C表的数据;如果不增加级联删除的华话,会提示错误信息;如果创建了外键约束却disable 外键约束的话,那和不创建也就一样了只需要创建B表上的外键C表的数据一致性可以通过触发器或者程序来保证