2011-07-08 13 views
1

私は大量の製品データベースを持っており、毎日active = '1'の行を新しいテーブルに移動して元の行を削除するスクリプトを実行したいと考えています。新しいテーブルに行を移動してから削除する

しかし、移行を実行するための適切なMysqlコマンドが見つからないようです。

誰かがその状況を明らかにすることができれば素晴らしいと思います。

どうもありがとう

答えて

0

あなただけの好奇心として、次の

CREATE TABLE NewTable LIKE OldTable; 

INSERT INTO NewTable 
SELECT * FROM OldTable WHERE Active = 1; 

DELETE FROM OldTable WHERE Active = 1; 

でこれを完了することができるはず、これを行うことのポイントは何ですか?あなたが任意の詳細がなくて

DELETE OldTab FROM OlTable AS OldTab 
INNER JOIN NewTable AS NewTab 
ON OldTab.ID = NewTab.ID 
+1

ファジーエッジを監視する...これらの2つのステートメントの間に新しい行をアクティブ= 1で挿入すると、望ましくない結果が生じます。 – Randy

+0

ええ、それが心配なのであれば、挿入と削除の間、テーブルをロックすることができます。私は古いテーブルが破棄されているという質問から感じますが。 – Kibbee

0

を次のように削除を行うことができファジー行心配している場合は、ここにあなたが何をするかです:

からAS SELECT新しいテーブルにINSERT文を作成します古いテーブルWHERE active = 1

2番目のテーブルで見つかった行を最初のテーブルから削除するDELETE文を作成します。

コミット;

+0

コードがある場合は+1を付けます –

+0

@Clodoaldo - ランディーがOPのコードを入力した場合は+2を与えますか?) – KevinDTimm

関連する問題