すべてのプロダクト
Search
ドキュメントセンター

Hologres:TRUNCATE

最終更新日:Dec 31, 2025

`TRUNCATE` 文は、テーブルからデータをクリアするために使用されます。このトピックでは、Hologres における `TRUNCATE` 文の構文について説明します。

制限

TRUNCATE 文には、次の制限事項があります。

  • Hologres はシーケンスをサポートしていますが、現在サポートしているのは `CONTINUE IDENTITY` のみで、`RESTART IDENTITY` はサポートしていません。

  • TRUNCATE 文は、標準テーブル、親パーティションテーブル、および子パーティションテーブルで実行できます。

  • TRUNCATE 文は、外部テーブルでは実行できません。

構文

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

TRUNCATE [ TABLE ] name [, ... ]
    [CONTINUE IDENTITY ] 

CONTINUE IDENTITY パラメーターは、シーケンスの現在の値を変更しません。

説明
  • TRUNCATE コマンドはバイナリログを生成しません。

  • V3.1 より前のバージョンでは、TRUNCATE はデータ定義言語 (DDL) 文でした。バイナリログが有効になっているテーブルで TRUNCATE 文を実行しても、エラーは報告されず、バイナリログも生成されません。

  • V3.1 以降のバージョンでは、TRUNCATE はデータ操作言語 (DML) 文です。この変更により、TRUNCATE 操作が頻繁に行われるシナリオでのフロントエンド (FE) への負荷が軽減されます。バイナリログが有効になっているテーブルで TRUNCATE 文を実行すると、エラーが報告されます。この場合、次のいずれかのコマンドを実行してください。

    • 方法 1 (推奨):セッションレベルで、Grand Unified Configuration (GUC) パラメーター SET hg_enable_truncate_as_dml = off を設定して、TRUNCATE 操作を DDL 操作に変更します。

    • 方法 2:セッションレベルで、GUC パラメーター SET hg_experimental_generate_binlog = off を設定して、バイナリログ機能を無効にします。注意:この GUC パラメーターは、すべてのテーブルと DML 操作に影響します。詳細については、「テーブルでの DML 操作に対するバイナリログの無効化」をご参照ください。

次の例は、TRUNCATE 文の使用方法を示しています。

  • 例 1:

    CREATE TABLE event (
        id INT,
        name text,
        tag text
    );
    INSERT INTO event (id,name,tag) values (23,'buy', 'num');
    
    SELECT * FROM event;
    
    TRUNCATE TABLE event ;
  • 例 2:

    CREATE TABLE event_1 (
        id serial,
        name text,
        tag text
    );
    
    INSERT INTO event_1 (name,tag) values ('buy', 'num');
    
    SELECT * FROM event_1;
    
    # CONTINUE IDENTITY はデフォルトです。
    TRUNCATE TABLE event_1 CONTINUE IDENTITY;