日期:2014-05-17  浏览次数:20781 次

求sql语句,想删除表A,同时删除其关联的表B。怎么写呢?
有一个project的表。
有两个列。一个是projectname ,一个是related testcase 
related testcase的值,是另外一个表的表名。

也就是: 每一个条目包含一个项目和项目关联的测试用例表。

现在我想删除一个项目A,同时它关联的测试用例表B也要随之删除。

如何写sql语句呢 ?(mysql)

另外是写在ibatis的映射表里,能用一句sql语句写完么 ?

求解。谢谢。




------解决方案--------------------
写2条SQL,放在一个连接里面。先根据主表project对应的related testcase 删除从表的内容,在删主表的内容。一个SQL不可能完成,除非在HQL中,用级联。
------解决方案--------------------
你的这个,一条sql是不行的。至于ibatis中是否可以写多条sql,需要你查询相关api。
------解决方案--------------------
级联删除应该是在建表的时候设置的吧。如果建表的时候没有设置的话那只能选删子表再删父表。
------解决方案--------------------
这种情况没办法用事务的,所以可能会存在一些问题。建议先删数据,然后再drop表吧。但是可能会数据删了表没有drop掉的情况,自己多考虑考虑吧。其最好的是在project表里面加一个字段,表示该条数据是否可以作为逻辑控制比较好。
------解决方案--------------------
用级联,,,不过觉得,,,这样关联着删除实在是可怕的想法。。。
------解决方案--------------------
个人感觉,此种操作不可取,建议数据只用于存放数据,至于效果,可以使用代码通过逻辑的方式进行模拟效果。