我使用查詢來刪除約9,000,000行但沒有刪除行有什麼問題?刪除查詢正在運行並且不刪除任何數據
DELETE FROM `messages` WHERE last_change < 1332201600 && last_change !=0
// 1332201600是時間戳
我使用查詢來刪除約9,000,000行但沒有刪除行有什麼問題?刪除查詢正在運行並且不刪除任何數據
DELETE FROM `messages` WHERE last_change < 1332201600 && last_change !=0
// 1332201600是時間戳
刪除從一個大表9個百萬行可能需要很長的時間。在整個命令完成並且提交事務之前,不會刪除任何行。你必須要有耐心。
我也會檢查你的WHERE子句實際上是否匹配一些行。嘗試運行此聲明:
SELECT *
FROM `messages`
WHERE last_change < 1332201600 && last_change !=0
LIMIT 10
如果返回10行(它應該如果你的問題的信息是正確的),那麼你原來的DELETE語句會刪除至少那10行。
也許問題出在和運營商,它應該是:
DELETE FROM `messages` WHERE last_change < 1332201600 AND last_change !=0
[AND and&&](http://dev.mysql.com/doc/refman/5.6/en/logical-operators.html#operator_and)是一樣的。 (我同意使用'AND'更好,但我認爲它不會解決問題)。 –
我同意,我會走得更遠:'... last_change <'2012-06-23 12:00 am'and last_change <> 0' – paulsm4
問題查詢完成,但沒有刪除的行 –
@babakfaghihian:你運行一個事務中?你有沒有交易?你有沒有注意到它說「x rows affected」?你能記得x報道的價值是什麼嗎? –
我應該刪除這行我的問題是爲什麼沒有行刪除? –