MariaDB社区

标题: 请教一个MYSQL实例操作问题,如何在一定条件下,删除5个表中关联的记录。 [打印本页]

作者: hello12    时间: 2008-11-11 14:02
标题: 请教一个MYSQL实例操作问题,如何在一定条件下,删除5个表中关联的记录。
有5个表:a,b,c,d
a中有:id_a,lastlogin,ncash(1,2008-01-01 00:00:00,1)
b中有:id_b,a_id,level(1,1,1)
c中有:id_c,b_id,owner(1,1,JAMIE)
d中有:id_d,c_id,(1,1)
e中有:id_e,b_id,(1,1)

a表是一个账号表,b是账号下的人物表,c是人物物品表,d是物品属性表,e是人物相关表2。

我现在想做的是删除一组账号,条件是:
a表中lastlogin小于2008-01-01 00:00:00,ncash为0,
b表中level小于10,
c表中owner为空,

满足上面条件,就删除账号,并且删除相应账号内的人物,人物的物品,物品表,还有相关表。
不符合上面条件,账号不删除。

请问要达到上面的效果,怎么写SQL?或者如果建立触发器?
作者: kider    时间: 2008-11-11 19:54
a表中lastlogin小于2008-01-01 00:00:00,ncash为0,
b表中level小于10,
c表中owner为空,

以上3种条件是 and 还是or 的关系?

是个级联删除问题
给个参考:
DELETE a, b,c,d,e FROM a, b,c,d,e
WHERE a.id_a=b.a_id
   AND b.id_b=c.b_id
   AND c.id_c=d.c_id
   AND d.id_e=e.d_id
   AND  b.level<10;

或用触发器...




欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2