我想建立级联删除,就是删除一个表的数据之后,与这个表中这条删除的记录有外键关系的表的记录都删除,现在我用外键的CASCADE选项,在程序里通过控制,判断如果用户选择删除,则打开CASCADE选项,否则关闭,使其不能级联删除!这样做可取吗?我总觉得总是在更改数据库方法不可取,大家有好的建议吗?

解决方案 »

  1.   

    当你运行程序,而同时又有用户对数据库进行删除操作的时候,你的程序恰巧处于CASCADE选项关闭的状态,你说会不会发生死锁呢
      

  2.   

    我觉得不会死锁,当CASCADE关闭的时候其他用户如果删除操作的话会提示找到父项,无法删除,怎么会死锁?
      

  3.   


    是否删除由用户决定? 那最好在程序中实现,或者用触发器,或者多个delete存在。尽量少的在过程中使用DDL操作数据库。