TRUNCATE

TRUNCATE语句用于清空目标表。本文为您介绍HologresTRUNCATE的语法。

使用限制

TRUNCATE语句的使用限制如下:

  • Hologres支持Sequence,但目前仅支持CONTINUE IDENTITY,不支持RESTART IDENTITY。

  • Hologres支持对普通表、分区父表及分区子表执行TRUNCATE语句。

  • Hologres不支持对外部表执行TRUNCATE语句。

语法

TRUNCATE的语法格式如下。

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

CONTINUE IDENTITY参数不修改当前Sequence的值。

说明
  • TRUNCATE命令不支持生成Binlog。

  • TRUNCATEV3.1版本前属于DDL命令,对开启了Binlog的表执行TRUNCATE不会报错,也不会生成Binlog。

  • TRUNCATEV3.1版本起变更为DML命令,可有效降低高频TRUNCATE场景下FE的压力。对开启了Binlog的表执行TRUNCATE会直接报错,需要Session级别关闭Binlog,命令为SET hg_experimental_generate_binlog = off;

使用示例

TRUNCATE的使用示例如下。

  • 示例一。

    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 ;
  • 示例二。

    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;