TRUNCATE TABLE
TRUNCATE TABLE {( aTable )}
引数 | 型 | 説明 | |
---|---|---|---|
aTable | Table | → | すべてのレコードが削除されるテーブル 省略時はデフォルトテーブル |
説明
TRUNCATE TABLE コマンドはaTableのすべてのレコードを素早く削除します。aTableが既に空の場合、TRUNCATE TABLEは何も行いません。コマンドの呼出し後、カレントセレクションやカレントレコードはありません。
このコマンドの効果はALL RECORDSとDELETE SELECTIONの呼び出しと同じです。しかしその動作は以下の点で異なります:
- トリガは呼び出されません。
- データの参照整合性はチェックされません。
- TRUNCATE TABLEを実行するプロセスはトランザクション中であってはなりません。トランザクション中の場合、コマンドは何も行わず、OKシステム変数に0が設定されます。
- 1つ以上のレコードが他のプロセスによりロックされていると、コマンドは失敗します。エラーが生成され、OKシステム変数に0が設定されます。LockedSetシステムセットは作成されません。
- aTableが既に空の場合、TRUNCATE TABLEは何も行わず、OK変数は1に設定されます。
- aTableが読み込みのみの場合、TRUNCATE TABLEは何も行わず、OK変数は0に設定されます。
- ログファイルがあれば、処理はログファイルに記録されます。
TRUNCATE TABLEコマンドは注意して使用しなければなりませんが、例えば一時的なデータを素早く削除するなど特定のケースではとても効率的です。
Note: このコマンドのコンセプトと動作はSQL TRUNCATE (テーブル) コマンドと同じです。
システム変数およびセット
コマンドが正しく実行されるとシステム変数OKは1に、そうでなければ0に設定されます。