全部产品
Search
文档中心

Hologres:TRUNCATE

更新时间:Dec 31, 2025

Pernyataan TRUNCATE digunakan untuk menghapus data dari sebuah tabel. Topik ini menjelaskan sintaks pernyataan tersebut di Hologres.

Batasan

Pernyataan TRUNCATE memiliki batasan-batasan berikut:

  • Hologres mendukung sequences, tetapi saat ini hanya mendukung CONTINUE IDENTITY, bukan RESTART IDENTITY.

  • Anda dapat mengeksekusi pernyataan TRUNCATE pada tabel standar, tabel partisi induk, maupun tabel partisi anak.

  • Anda tidak dapat mengeksekusi pernyataan TRUNCATE pada tabel eksternal (foreign tables).

Sintaksis

Sintaks pernyataan TRUNCATE adalah sebagai berikut.

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

Parameter CONTINUE IDENTITY tidak mengubah nilai saat ini dari sequence.

Catatan
  • Perintah TRUNCATE tidak menghasilkan log biner.

  • Pada versi sebelum V3.1, TRUNCATE merupakan pernyataan Data Definition Language (DDL). Jika Anda mengeksekusi pernyataan TRUNCATE pada tabel yang telah mengaktifkan fitur binary logging, tidak ada error yang dilaporkan dan tidak ada log biner yang dihasilkan.

  • Mulai versi V3.1 dan seterusnya, TRUNCATE merupakan pernyataan Data Manipulation Language (DML). Perubahan ini mengurangi beban pada frontend (FE) dalam skenario yang melibatkan operasi TRUNCATE secara intensif. Jika Anda mengeksekusi pernyataan TRUNCATE pada tabel yang telah diaktifkan fitur binary logging-nya, sistem akan mengembalikan error. Dalam kasus ini, jalankan salah satu perintah berikut:

    • Metode 1 (Direkomendasikan): Pada tingkat sesi, ubah operasi TRUNCATE menjadi operasi DDL dengan mengatur parameter Grand Unified Configuration (GUC) SET hg_enable_truncate_as_dml = off.

    • Metode 2: Pada tingkat sesi, nonaktifkan fitur binary logging dengan mengatur parameter GUC SET hg_experimental_generate_binlog = off. Catatan: Parameter GUC ini memengaruhi semua tabel dan operasi DML. Untuk informasi selengkapnya, lihat Nonaktifkan binary logging untuk operasi DML pada tabel.

Contoh

Contoh berikut menunjukkan cara menggunakan pernyataan TRUNCATE.

  • Contoh 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 ;
  • Contoh 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 adalah nilai default.
    TRUNCATE TABLE event_1 CONTINUE IDENTITY;