删除查询正在运行,不会删除任何数据

时间:2012-06-24 21:03:32

标签: mysql

我使用查询删除大约9,000,000行,但没有删除行是什么问题?

 DELETE FROM `messages` WHERE  last_change < 1332201600 && last_change !=0

// 1332201600是时间戳

2 个答案:

答案 0 :(得分:2)

从大型表中删除900万行可能需要很长时间。在整个命令完成并提交事务之前,不会删除任何行。你必须耐心等待。

我还会检查你的WHERE子句是否实际匹配某些行。尝试运行此声明:

SELECT *
FROM `messages`
WHERE last_change < 1332201600 && last_change !=0
LIMIT 10

如果这返回10行(并且如果问题中的信息正确则应该如此),那么原始的DELETE语句将删除至少那10行。

答案 1 :(得分:2)

也许问题在于和运营商,它应该是:

DELETE FROM `messages` WHERE  last_change < 1332201600 AND last_change !=0