Webサイトの運営会社で得た技術的な知識を記録していきます。 サーバー情報、Webデザイン、プログラミング、このWebサイトで利用させていただいているBlogger(ブロガー)についても公開していきます。

Oracleのテーブル(表)のデータを全て削除するSQL(TRUNCATE)

Oracleでテーブル(表)を削除するには、「TRUNCATE TABLE ~」を使用します。

「TRUNCATE」は、テーブル(表)のデータを削除するということでは「DELETE」と変わりがありません。

ただし、テーブル(表)のデータは全て削除されてしまいます。
そして、「TRUNCATE」を実行した後に「やっぱり元に戻したい」ということになった場合、ROLLBACKでは戻すことが不可能です。

なぜ、ROLLBACKできないのかは
「TRUNCATE」で削除した時は、REDOログに削除した履歴が記録されない為のようです。

ログを記録しないので、「DELETE」よりも早く削除を完了させることが可能なんでしょうね。

「TRUNCATE」を実行した後に取消(ROLLBACK)できないという点で、慎重に実行する必要がありますね。


テーブル(表)のデータを全件(全行)削除する

テーブル(表) "table1" に挿入されているデータを全て削除する方法です。

-- テーブルのデータを全て削除するSQL
TRUNCATE TABLE <テーブル名>;

実行例1. テーブル(表) "table1" の データを全件削除する

テーブル(表) "table1" に挿入されているデータを全件(全行)削除します。
-- テーブル "table1" のテータを全件(全行)削除するSQL
TRUNCATE TABLE table1;

パフォーマンスは、「DELETE」よりも「TRUNCATE」の方が良いです。
「TRUNCATE」すると索引も削除さるます。

ここでは、テーブルのレコードを全件を削除する方法をご紹介しました。

以上、Oracleで全件削除する「TRUNCATE TABLE」でした。

0 件のコメント:

人気記事

ラベル

アーカイブ

ページ

このブログを検索