Oracle TRUNCATEとDELETEの違いとは?【SQL徹底比較】

オラクルデータベースでは、truncateとdeleteはどちらもテーブル内のデータを削除するために使用されますが、重要な違いがあります。

  1. truncateはDDLステートメントであり、deleteはDMLステートメントです。truncateステートメントは表領域をすぐ解放しますが、deleteステートメントはしません。つまり、truncateを使用して表のデータを削除すると速くなりますが、ロールバックできません。
  2. truncateステートメントはテーブル内のすべてのデータを削除しますが、deleteステートメントは条件に基づいて一部のデータを削除することができます。
    truncateステートメントはテーブル内のすべてのデータを削除するが、deleteステートメントは条件に基づいて一部のデータを削除することができる。
  3. truncate文はテーブルのトリガーを発動させませんが、delete文は発動させます。
  4. truncate文は、テーブルのON DELETEトリガーを発動させませんが、delete文は発動させます。

以上のように、すべてのデータを削除してロールバックしない場合は、truncateステートメントを使用できます。条件に基づいて一部のデータを削除したり、トリガーを起動する必要がある場合は、deleteステートメントを使用する必要があります。

bannerAds