求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表里面加一个字段,表示该条数据是否可以作为逻辑控制比较好。
------解决方案--------------------用级联,,,不过觉得,,,这样关联着删除实在是可怕的想法。。。
------解决方案--------------------个人感觉,此种操作不可取,建议数据只用于存放数据,至于效果,可以使用代码通过逻辑的方式进行模拟效果。