2011-10-19 10 views

答えて

0

あなたはこのような何かを行うことができます。

DELETE FROM MyTable 
WHERE MyTable.MyDate < SUBDATE(@NOW, 30) 
+0

ここでは1つのテーブルからしか削除できませんが、私は自分のデータベース内のすべてのテーブルに対してこのプロセスを実行する必要があります。このテーブルでは、カラム名はprs_dateです – dev

0

区切り文字// が手続きDELETE_DATA(スキーマのVARCHAR(25)) DECLAREのTAB_NAMEのはvarchar(64)の開始を作成します。 DECLARE done TINYINT DEFAULT 0;

DECLARE table_name_cur select table_nameのカーソルfrom information_schema.TABLES where table_schema = schemata;

DECLARE CONTINUE HANDLER NOT FOUND SET done = 1;

OPEN table_name_cur; read_loop:LOOP FETCH table_name_cur INTO tab_name;

IF done THEN LEAVE read_loop; END IF; 

- TAB_NAMEから削除どこ今PRS_DATE <() - インターバル1ヵ月。

@x = concat( 'delete from'、tab_name、 'where'、 'PRS_DATE \ <'、 'now() - interval 1 month'); を選択してください。
@xからstmt2を準備します。 はstmt2を実行します。 割り当てを解除するstmt2;

END LOOP; 

CLOSE table_name_cur; END // 区切り文字。

関連する問題