2008-7-11 16:50
orange_82
sql语句怎么删除相关联表
两个表想关联,先删一个表,会提示和另一个表存在关联关系而删不掉,怎么无条件的删除该表呢?
在oracle中可以使用cascade constraints
在sybase中怎么删呢?
2008-7-30 05:03
taozhao
我的解决方法
的确,因为Sybase不支持cascade delete. 对于有foreign key 的子母表,即使在母表中写个delete trigger也不行,因为删除母表先碰到foreign key violation,trigger不能被启动。
有两种解决方法
1。 写个stored procedure DeleteMyparentTable(), 在其中先delete子表,然后再delete母表, 唯一不方便的是,程序员必须记着调用这个stored procedure而不能直接Delete myParentTable.
2. drop掉foreign key, 在母表上创建delete, insert 和update trigger, 同时在子表上也创建insert 和update trigger。 由 trigger来完成原来foreign key的功能。
母表中delete trigger负责删除子表纪录
[[i] 本帖最后由 taozhao 于 2008-7-30 05:04 编辑 [/i]]