2011-09-23 8 views
1

この質問はさまざまな方法で求められていますが、私はそれらをかなりよく理解していません。レコードを別のテーブルに移動するMySQL

期限が切れている(その日付がnow()より遅れているか、日付が1970年から秒であるフィールドをそれぞれ別の同一のテーブルに移動したい)。これはメインテーブルでイベントキューを小さくするためです。

レコードを別のテーブルに移動するために使用できるクエリはありますか?私は時間のチェックをすることができます/自分が満了するとき。あなたは1つのクエリでこれを行うカント

答えて

5

は、次の2つを実行する必要があります。 クエリ1:

INSERT INTO newtable SELECT * FROM oldtable WHERE date<now(); 

クエリ2:

DELETE FROM oldtable WHERE date <= SELECT MAX(date) FROM newtable 
+0

クール。ありがとう、よさそうだ。 – LouwHopley

0
insert into backupTable (select field1, field2 from mainTable where myDate < UNIX_TIMESTAMP(NOW())) 

delete from mainTable where myDate < UNIX_TIMESTAMP(NOW()) 
+1

クエリが同じ秒で実行されると大丈夫ですが、大きなテーブルでは可能性は低くなります。あなたの場合、移動した行よりも多くの行を削除することができます。 – cichy

関連する問題