从表面上看,我的用例非常简单。我有两张桌子:order
和line
。order
包含id
和datetime
,并且在表中line
有对 的引用。不幸的是,这是一个非常旧的系统,我不能(即不允许修改系统)使用带有更新/删除触发器的外键。id
order
我正在阅读这个问题并编写了自己的查询来做类似的事情。基本上,只要订单超过两年,我就想删除line
与删除订单相关的所有 s :order
DELETE a
FROM
`line` AS a
LEFT JOIN `order` AS b ON a.`order_id` = b.`id`
WHERE
b.`datetime` < DATE_SUB(NOW(), INTERVAL 2 YEAR);
目前没有任何事情发生 - 没有行受到影响。将查询更改为仅选择,使用相同的连接和 where 子句,可以很好地返回许多结果。
我在这里想念什么?