0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

削除処理 自分用メモ

Posted at

以下のような DELETE 文を記述すれば、指定した条件を満たす SQL になります。

DELETE 文

DELETE FROM USER
WHERE REG_TIME < SYSDATE - #{deleteDays}
AND UPD_TIME < SYSDATE - #{deleteDays}

解説

  1. SYSDATE - #{deleteDays}

    • SYSDATE は Oracle で現在日時を取得する関数。
    • SYSDATE - NN 日前の日時を取得できる。
    • #{deleteDays} は MyBatis のプレースホルダーで、Java から int 型の変数を渡せる。
  2. REG_TIME < SYSDATE - #{deleteDays} AND UPD_TIME < SYSDATE - #{deleteDays}

    • REG_TIMEUPD_TIME の両方が deleteDays 日より前なら削除対象。

MyBatis の Mapper 記述例

<delete id="deleteOldUsers">
    DELETE FROM USER
    WHERE REG_TIME < SYSDATE - #{deleteDays}
    AND UPD_TIME < SYSDATE - #{deleteDays}
</delete>

Java の呼び出し例

int deleteDays = 30; // 30日以上前のデータを削除
userMapper.deleteOldUsers(deleteDays);

この SQL で、REG_TIMEUPD_TIME の両方が deleteDays 日以上前のレコードのみ削除できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?