TRUNCATE
注意
この命令は、SQLの規格では実装されていないようです。しかし、Oracleやpostger SQL、MySQLで実装されていることが確認できています。それぞれのデータベースにより実装内容が異なる場合があるかもしれないので、使用する際にはそれぞれの仕様書を読みましょう。
TRUNCATE TABLE 表名
表中のすべての行を削除する。
DELETE文を使用する場合よりも高速に削除することができる。
DELETE文を使用する場合よりも高速に削除することができる。
TABLEの部分は省略できるデータベースと出来ないものがあるため、省略しないほうがいいでしょう。
以下に、データベース別の処理について書きます。間違っている部分は修正してください。
Oracle
- ロールバックできない。
- 表削除のトリガーが使えない。
- 外部キーとなっている親表の場合は削除できない。
postger SQL
- ロールバックできない。
MySQL
- ロールバックできない。
- 表を削除し、再構成している?
- データやインデックスファイルがこわれても、定義ファイルがあれば復旧できる。(中身は多分無くなる)
- バージョンによりTABLEが省略できない