Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データのクエリと変更 » データの追加、変更、削除 » DELETE によるデータの削除

 

テーブルから全ローを削除

TRUNCATE TABLE 文を使用すると、テーブルにあるすべてのローを簡単に削除できます。この方法は、条件を指定しない DELETE 文よりもすばやく処理できます。これは、DELETE 文が各変更のログを取るのに対し、TRUNCATE 文では個々のローの削除が記録されないためです。

DROP TABLE 文を実行しないかぎり、TRUNCATE TABLE 文によって空になったテーブルの定義は、インデックスや他の関連オブジェクトとともにデータベースに残されます。

他のテーブルに参照整合性制約で参照するローがあると、TRUNCATE TABLE 文を使用できません。外部テーブルからローを削除するか、外部テーブルをトランケートしてからプライマリ・テーブルをトランケートします。

ベース・テーブルのトランケート操作またはバルク・ロードの実行操作を行うことにより、インデックス (通常のインデックスまたはテキスト・インデックス) 内と従属マテリアライズド・ビュー内のデータが古くなります。最初にインデックスや従属したマテリアライズド・ビューのデータをトランケートし、INPUT 文を実行してから、インデックスとマテリアライズド・ビューを再構築または再表示してください。TRUNCATE 文TRUNCATE TEXT INDEX 文を参照してください。

TRUNCATE TABLE 構文

TRUNCATE TABLE 文の構文は次のとおりです。

TRUNCATE TABLE table-name

たとえば、SalesOrders テーブルのすべてのデータを削除するには、次のように入力します。

TRUNCATE TABLE SalesOrders;

TRUNCATE TABLE 文はテーブルで定義されたトリガを呼び出しません。

次の ROLLBACK 文を入力して、データベースのこれらの変更をキャンセルしてください。

ROLLBACK;