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
TRUNCATEpada tabel standar, tabel partisi induk, maupun tabel partisi anak.Anda tidak dapat mengeksekusi pernyataan
TRUNCATEpada 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.
Perintah
TRUNCATEtidak menghasilkan log biner.Pada versi sebelum V3.1,
TRUNCATEmerupakan pernyataan Data Definition Language (DDL). Jika Anda mengeksekusi pernyataanTRUNCATEpada 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,
TRUNCATEmerupakan pernyataan Data Manipulation Language (DML). Perubahan ini mengurangi beban pada frontend (FE) dalam skenario yang melibatkan operasiTRUNCATEsecara 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;