PostgreSQLでテーブル内の全てのデータを削除する【TRUNCATE】

SQL

TRUNCATE

テーブルに登録されている全てのデータを削除するには、SQLコマンドの「TRUNCATE」コマンドを使用します。
「TRUNCATE」の基本的な構文は以下の通りです。

TRUNCATE テーブル名1 [,テーブル名2,・・・] ;

「TRUNCATE」は、指定した各テーブルの全ての行を削除します。
これは、条件を指定しなかった「DELETE」コマンドと同じ結果ですが、「DELETE」コマンドはテーブル内を走査し条件に合う行を削除しようとします。「TRUNCATE」ではテーブル内を走査することはせず素早く全ての行を削除するため、「DELETE」コマンドより高速です。
また、「VACUUM」操作を行うことなくディスク領域を即座に回収します。
このため、大きなテーブルを対象にする場合に有用です。

TRUNCATEの詳細については、公式ドキュメントを参照してください。

テーブル内のデータを削除してみる

以下の「testtbl」「summarytbl」の2つのテーブルを例に「TRUNCATE」を実行してみます。
「testtbl」には7行、「summarytbl」には2行のデータが登録されています。

TRUNCATE サンプル

以下の例では、「testtbl」と「summarytbl」の全ての行を削除します。

TRUNCATE testtbl, summarytbl ;

実行すると両方のテーブル共にすべての行が削除されています。

TRUNCATE 全レコード削除

「TRUNCATE」コマンドの説明は以上です。

タイトルとURLをコピーしました