0

タイムスタンプに基づいてデータベースからレコードを削除しています。

私のクエリは簡単です

delete from calldetailrecord where StartTime between 1262321999000 AND 1309492799000;

1262321999000 = 2009 年 12 月 31 日木曜日 23:59:59 GMT-0500 (東部標準時)

1296449999000 = 2011 年 1 月 30 日 23:59:59 GMT-0500 (東部標準時)

ミリ秒のために、私は使用しました:

http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/計算を行う

月ごとにデータを削除し、データがなくなったら停止する while ループを作成するにはどうすればよいでしょうか。

4

3 に答える 3

2

月ごとに削除するwhileループを作成するにはどうすればよいのでしょうか。データがなくなると停止します。

テーブルからすべてのデータを削除する場合は、truncate コマンドを使用します。

truncate calldetailrecord;

単にシングルdeleteでもそれを行う

delete from calldetailrecord;
于 2012-12-14T19:32:52.627 に答える
0

選択的削除を実行したいようです。まず、削除する期間を準備し、単一のクエリを生成してから実行します。

DELETE FROM calldetailrecord WHERE StartTime BETWEEN 1353897342 AND 1353897592 OR StartTime BETWEEN 1353897754 AND 1353897764;

可能な限りdbへの接続を最小限に抑える必要があります。

于 2012-12-14T21:28:15.130 に答える
0

この方法でパフォーマンスが向上すると思います:

Create table  new_table as select *  calldetailrecord where StartTime > 1309492799000

drop table calldetailrecord;
alter table new_table rename to calldetailrecord;

これにより、行ごとに削除を行うという問題が回避されます。これは非常に遅くなります。

于 2012-12-14T19:49:06.343 に答える