0

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

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

//1332201600是时间戳

4

2 回答 2

2

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

我还会检查您的 WHERE 子句是否实际匹配某些行。尝试运行以下语句:

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

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

于 2012-06-24T21:04:54.130 回答
2

也许问题在于 and 运算符,它应该是:

DELETE FROM `messages` WHERE  last_change < 1332201600 AND last_change !=0
于 2012-06-24T21:08:55.410 回答