S-JIS[2026-09-08]

Tsurugi truncate table

TsurugiSQLのtruncate tableのメモ。


概要

TsurugiのSQLでテーブルのデータを削除するDDLがtruncate table文。(Tsurugi 1.12.0以降)

truncate table テーブル名

DDLを実行する際のトランザクション種別


truncateはDDLなので、DMLと並列に実行するのは非推奨。
(truncate後のinsert等は別トランザクションで実行する必要がある)


truncate tableの例

truncate table test;

identityオプションの例

プライマリキーを自動採番するテーブル(create tablegenerated〜as identityを指定したカラムがあるテーブル)に関して、次に採番する値をどうするかを指定するオプションがある。

truncate table テーブル名 [オプション]
オプション 説明
RESTART IDENTITY 最初の値に戻す
CONTINUE IDENTITY 現在の値を継続する(デフォルト)
create table truncate_test (
  pk int primary key generated always as identity (start 100),
  value int
);
tgsql> insert into truncate_test (value) values(1),(2),(3);
tgsql> select * from truncate_test;
[pk: INT, value: INT]
[100, 1]
[101, 2]
[102, 3]
(3 rows)
tgsql> truncate table truncate_test restart identity;
tgsql> insert into truncate_test (value) values(1),(2),(3);
tgsql> select * from truncate_test;
[pk: INT, value: INT]
[100, 1]
[101, 2]
[102, 3]
(3 rows)
tgsql> truncate table truncate_test continue identity;
tgsql> insert into truncate_test (value) values(1),(2),(3);
tgsql> select * from truncate_test;
[pk: INT, value: INT]
[103, 1]
[104, 2]
[105, 3]
(3 rows)
tgsql> truncate table truncate_test; -- オプションなし
tgsql> insert into truncate_test (value) values(1),(2),(3);
tgsql> select * from truncate_test;
[pk: INT, value: INT]
[106, 1]
[107, 2]
[108, 3]
(3 rows)

Tsurugi SQLへ戻る / Tsurugiへ戻る / 技術メモへ戻る
メールの送信先:ひしだま