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
| Parameter | Deskripsi |
| nama tabel | Nama (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)