日期:2014-05-18  浏览次数:20786 次

简单的数据库主键与外键的问题
若表A的主键ID是,表B的外键A_ID,参照A(ID)。
若在WEB程序中用JDBC直接删除表A中的一行,会出现以下哪种情况,
1,出错
2,只删除表A中的一行
3,删除表A中的一行,并且删除表B中与A相关的行

------解决方案--------------------
当然是1了,有外键约束的不能直接删除,如果删除的话,数据库会抛异常。所以要先删除B表中的数据,然后再删除A表中的数据。
------解决方案--------------------
这个就是主键约束和外键约束的问题,如果你想在删除A表时候也删除B表
请使用级联删除的功能,ON DELETE CASCADE在子表的DDL中使用
以上功能使用于Oracle9i数据库
------解决方案--------------------
这个就是主键约束和外键约束的问题,如果你想在删除A表时候也删除B表
请使用级联删除的功能,ON DELETE CASCADE在子表的DDL中使用
以上功能使用于Oracle9i数据库

------解决方案--------------------
看你什么数据库了,有些数据库(如DB2)可以设置外键删除时的操作。(用触发器可实现)