我有一个名为 itemorder的表userID
,在我的. 表的PK是itemID
date
status
notes
MYSQL DB
userID, itemID
我需要编写一个 SQL 查询,该查询将删除所有 2 天前且状态 = 2 的行。(此 sql 查询将每天在我的服务器中运行一次)。
我编写了以下 sql 查询:
SELECT *
FROM itemorder
WHERE
statusOrder=2
AND statusDate< (SELECT DATE_ADD(CURDATE(), INTERVAL -2 DAY))
查询返回与条件匹配的所有行。但是,如果我将其更改SELECT *
为DELETE
它不起作用。
这是代码
DELETE
FROM itemorder
WHERE
statusOrder=2
AND statusDate<(SELECT DATE_ADD(CURDATE(), INTERVAL -2 DAY))
它说:Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor -> Query Editor and reconnect.
从错误中我了解到我无法删除,因为查询WHERE
不能通过它的 PK 识别每一行。我能做些什么?我阅读了主题从没有主键的 SQL 表中删除重复记录,但仍然不知道如何将我的更改SELECT
为DELETE
.