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 に答える