メインコンテンツまでスキップ
バージョン: 開発中

TRUNCATE TABLE

TRUNCATE TABLE {( aTable )}

引数説明
aTableTableすべてのレコードが削除されるテーブル 省略時はデフォルトテーブル

説明

TRUNCATE TABLE コマンドはaTableのすべてのレコードを素早く削除します。aTableが既に空の場合、TRUNCATE TABLEは何も行いません。コマンドの呼出し後、カレントセレクションやカレントレコードはありません。

このコマンドの効果はALL RECORDSDELETE 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に設定されます。

参照

DELETE SELECTION

プロパティ

コマンド番号1051
スレッドセーフである
システム変数を更新するOK
カレントレコードを変更する
カレントセレクションを変更する