【发布时间】:2016-10-12 12:56:05
【问题描述】:
我有三张桌子xx_1 , xx_2, xx_3 这样:
xx_1
id obj_version_num location
1 x ubudu
2 x bali
3 x india
xx_2
id name grade
1 abc band 1
2 xyz band 2
3 gdgd band 3
xx_3 有:
Name details col1 p_id
abc A HDHD 10
xyz B HDHD 20
gdgd C HDHD 30
smith D HDHD 40
如果 xx_3 中的名称是 smith,我想从 xx_1 和 xx_2 中删除数据 目前我正在做:
delete from xx_1
where id in (select distinct id from xx_2 t ,xx_3 k
where t.name=k.name
and k.name ='Smith')
and then
delete from xx_2
where name ='Smith'
无论如何我可以同时从这两个表中删除数据吗?无需创建两个单独的脚本?
【问题讨论】:
-
您需要两个语句,这是无法解决的。但当然它们可以存储在单个脚本中。
-
如果这是您将经常做的事情,也许可以定义您的外键并使用“ON DELETE CASCADE”来执行您的单个语句删除。
-
@JNevill - 是的,我会定期执行这个包
-
这里提到的表实际上并不符合外键关系。表 XX_3 没有 ID 只有名字和名字在实际场景中不能作为主键