.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "TRUNCATE" "" "2007-05-04" "SQL - 言語" "SQLコマンド"
.SH NAME
TRUNCATE \- 1テーブルまたはテーブル群を空にする

.SH SYNOPSIS
.sp
.nf
TRUNCATE [ TABLE ] \fIname\fR [, ...] [ CASCADE | RESTRICT ]
.sp
.fi
.SH "説明"
.PP
\fBTRUNCATE\fRはテーブル群から全ての行を素早く削除します。
各テーブルに対して条件指定のない\fBDELETE\fRコマンドの実行と同じ効果を持ちますが、実際にテーブルを走査しない分、このコマンドの方が高速です。
このコマンドは、大きなテーブルを対象とする場合に最も有用です。
.SH "パラメータ"
.TP
\fB\fIname\fB\fR
空にするテーブルの名前です（スキーマ修飾名も可）。
.TP
\fBCASCADE\fR
指定されたテーブル、または、CASCADEにより削除対象テーブルとされたテーブルを参照する外部キーを持つテーブルすべてを自動的に空にします。
.TP
\fBRESTRICT\fR
外部キーにより対象のテーブルを参照するテーブルのいずれかが空にされない場合、操作を拒否します。
これがデフォルトです。
.SH "注釈"
.PP
テーブルの所有者のみが\fBTRUNCATE\fRを行うことができます。
.PP
そのテーブルが他のテーブルから外部キーで参照されている場合、1つの\fBTRUNCATE\fRでそれらのテーブルをすべて空にするように指定していない限り、\fBTRUNCATE\fRを使用することはできません。
このような場合は、有効性を検査するためにテーブルスキャンが必要になりますが、テーブルスキャンを行うのであれば、このコマンドの利点がなくなるからです。
CASCADEを使用して、自動的にすべての依存テーブルを含めることができます。
しかし、意図しないデータがなくなる可能性がありますので、このオプションを使用するときには十分に注意してください。
.PP
\fBTRUNCATE\fRは、テーブルに存在するユーザ定義のON DELETEトリガを一切実行しません。
.SH "例"
.PP
bigtableテーブルおよびfattableテーブルを空にします。
.sp
.nf
TRUNCATE TABLE bigtable, fattable;
.sp
.fi
.PP
othertableテーブル、および、外部キー制約によりothertableを参照するすべてのテーブルを空にします。
.sp
.nf
TRUNCATE othertable CASCADE;
.sp
.fi
.SH "互換性"
.PP
標準SQLには\fBTRUNCATE\fRコマンドはありません。
