クエリを使用して約 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 はタイムスタンプ
大きなテーブルから 900 万行を削除するには、長い時間がかかる場合があります。コマンド全体が完了し、トランザクションがコミットされるまで、行は削除されません。あなたは我慢しなければなりません。
また、WHERE 句が実際にいくつかの行と一致することも確認します。次のステートメントを実行してみてください。
SELECT *
FROM `messages`
WHERE last_change < 1332201600 && last_change !=0
LIMIT 10
これが10行を返す場合(質問の情報が正しい場合はそうなるはずです)、元のDELETEステートメントは少なくともそれらの10行を削除します。
おそらく問題は and 演算子にあり、次のようになります。
DELETE FROM `messages` WHERE last_change < 1332201600 AND last_change !=0