全部产品
Search
文档中心

PolarDB:TRUNCATE TABLE

更新时间:Jul 02, 2025

Perintah TRUNCATE TABLE menghapus seluruh isi tabel, tetapi mempertahankan definisi tabel.

Ikhtisar sintaksis

Gunakan perintah TRUNCATE TABLE untuk menghapus semua data dalam tabel sambil tetap mempertahankan struktur tabel. Saat Anda memotong tabel, semua partisi dan subpartisi di dalamnya juga akan terhapus. Berikut adalah sintaksis yang digunakan:
TRUNCATE TABLE nama_tabel;

Ikhtisar

Perintah TRUNCATE TABLE menghapus semua data dari tabel tanpa menghapus struktur tabel. Ketika tabel dipotong, semua partisi dan subpartisi yang terkait juga akan dihapus.

Untuk menjalankan perintah TRUNCATE TABLE, Anda harus memiliki salah satu dari otoritas berikut: pemilik akar partisi, anggota grup yang memiliki tabel, pemilik skema tabel, atau pengguna super basis data.

Parameter

ParameterDeskripsi
nama tabelNama (secara opsional memenuhi syarat skema) dari tabel terpartisi.

Contoh - mengosongkan tabel

Contoh berikut menunjukkan cara menghapus data dari tabel penjualan. Jalankan perintah berikut untuk membuat tabel penjualan:
CREATE TABLE sales
(
  dept_no     number,   
  part_no     varchar2,
  country     varchar2(20),
  date    date,
  amount  number
)
PARTITION BY LIST(country)
(
  PARTITION europe VALUES('FRANCE', 'ITALY'),
  PARTITION asia VALUES('INDIA', 'PAKISTAN'),
  PARTITION americas VALUES('US', 'CANADA')
);
Jalankan perintah berikut untuk menambahkan nilai ke tabel penjualan:
INSERT INTO sales VALUES
(10, '4519b', 'FRANCE', '17-Jan-2012', '45000'),
(20, '3788a', 'INDIA', '01-Mar-2012', '75000'),
(40, '9519b', 'US', '12-Apr-2012', '145000'),
(20, '3788a', 'PAKISTAN', '04-Jun-2012', '37500'),
(40, '4577b', 'US', '11-Nov-2012', '25000'),
(30, '7588b', 'CANADA', '14-Dec-2012', '50000'),
(30, '9519b', 'CANADA', '01-Feb-2012', '75000'),
(30, '4519b', 'CANADA', '08-Apr-2012', '120000'),
(40, '3788a', 'US', '12-May-2012', '4950'),
(10, '9519b', 'ITALY', '07-Jul-2012', '15000'),
(10, '9519a', 'FRANCE', '18-Aug-2012', '650000'),
(10, '9519b', 'FRANCE', '18-Aug-2012', '650000'),
(20, '3788b', 'INDIA', '21-Sept-2012', '5090'),
(40, '4788a', 'US', '23-Sept-2012', '4950'),
(40, '4788b', 'US', '09-Oct-2012', '15000'),
(20, '4519a', 'INDIA', '18-Oct-2012', '650000'),
(20, '4519b', 'INDIA', '2-Dec-2012', '5090');
Anda dapat memeriksa tabel penjualan untuk memastikan bahwa partisi telah diisi dengan data:
acctg=# SELECT tableoid::regclass, * FROM sales;
   tableoid   |dept_no | part_no | country  |        date        | amount 
--------------+--------+---------+----------+--------------------+-----------
sales_europe  |     10 | 4519b   | FRANCE   | 17-JAN-12 00:00:00 |     45000
sales_europe  |     10 | 9519b   | ITALY    | 07-JUL-12 00:00:00 |     15000
sales_europe  |     10 | 9519a   | FRANCE   | 18-AUG-12 00:00:00 |    650000
 sales_europe |     10 | 9519b   | FRANCE   | 18-AUG-12 00:00:00 |    650000
sales_asia    |     20 | 3788a   | INDIA    | 01-MAR-12 00:00:00 |     75000
sales_asia    |     20 | 3788a   | PAKISTAN | 04-JUN-12 00:00:00 |     37500
sales_asia    |     20 | 3788b   | INDIA    | 21-SEP-12 00:00:00 |      5090
sales_asia    |     20 | 4519a   | INDIA    | 18-OCT-12 00:00:00 |    650000
sales_asia    |     20 | 4519b   | INDIA    | 02-DEC-12 00:00:00 |      5090
sales_americas|     40 | 9519b   | US       | 12-APR-12 00:00:00 |    145000
sales_americas|     40 | 4577b   | US       | 11-NOV-12 00:00:00 |     25000
sales_americas|     30 | 7588b   | CANADA   | 14-DEC-12 00:00:00 |     50000
sales_americas|     30 | 9519b   | CANADA   | 01-FEB-12 00:00:00 |     75000
sales_americas|     30 | 4519b   | CANADA   | 08-APR-12 00:00:00 |    120000
sales_americas|     40 | 3788a   | US       | 12-MAY-12 00:00:00 |      4950
sales_americas|     40 | 4788a   | US       | 23-SEP-12 00:00:00 |      4950
sales_americas|     40 | 4788b   | US       | 09-OCT-12 00:00:00 |     15000
(17 baris)
Untuk menghapus semua data dari tabel penjualan, jalankan perintah berikut:
TRUNCATE TABLE sales; 
Setelah menjalankan kueri pada tabel penjualan, hasilnya menunjukkan bahwa data telah dihapus, sedangkan skema tabel tetap utuh:
acctg=# SELECT tableoid::regclass, * FROM sales;
 tableoid | dept_no | part_no | country |   date   | amount 
----------+---------+---------+---------+----------+------------
(0 baris)