メモ > 技術 > データベース: MySQL > データ削除
データ削除
■TRUNCATEで削除
一例だが以下のようにすると、データをすべて削除できる
DELETEと違い、オートインクリメントもリセットされる
TRUNCATE TABLE users;
全データの削除(TRUNCATE文) - データの追加と削除 - MySQLの使い方
https://www.dbonline.jp/mysql/insert/index12.html
■一定期間経過したデータを削除
一例だが以下のようにすると、一定期間経過したデータをそれぞれ削除できる
# 30秒
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 30 SECOND));
# 30分
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 30 MINUTE));
# 12時間
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 12 HOUR));
# 1日
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 1 DAY));
# 1週間
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 1 WEEK));
# 10日
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 10 DAY));
# 1ヶ月
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 1 MONTH));
# 半年
DELETE FROM histories WHERE (created < DATE_SUB(CURDATE(), INTERVAL 6 MONTH));
以下のページで、Cronと合わせて自動削除する例が紹介されている
【MySQL】一定期間、特定の日付より以前のレコードを削除する cron設定有
https://web-creators-hub.com/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9/mysql_date_del/
Advertisement