Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
HAPUS
Menghapus baris dari tabel.
catatan
Ukuran maksimum untuk satu pernyataan SQL adalah 16 MB.
Sintaks
[ WITH [RECURSIVE] common_table_expression [, common_table_expression , ...] ] DELETE [ FROM ] { table_name | materialized_view_name } [ { USING } table_name, ... ] [ WHERE condition ]
Parameter
- DENGAN klausa
Klausa opsional yang menentukan satu atau lebih. common-table-expressions Lihat DENGAN klausa.
- FROM
-
Kata kunci FROM adalah opsional, kecuali ketika klausa USING ditentukan. Pernyataan
delete from event;
dandelete event;
operasi setara yang menghapus semua baris dari tabel EVENT.catatan
Untuk menghapus semua baris dari tabel, MEMOTONG tabel. TRUNCATE jauh lebih efisien daripada DELETE dan tidak memerlukan VACUUM dan ANALYSIS. Namun, ketahuilah bahwa TRUNCATE melakukan transaksi di mana ia dijalankan.
- table_name
-
Meja sementara atau persisten. Hanya pemilik tabel atau pengguna dengan hak istimewa DELETE pada tabel yang dapat menghapus baris dari tabel.
Pertimbangkan untuk menggunakan perintah TRUNCATE untuk operasi penghapusan cepat yang tidak memenuhi syarat pada tabel besar; lihat. MEMOTONG
catatan
Setelah menghapus sejumlah besar baris dari tabel:
-
Vakum meja untuk merebut kembali ruang penyimpanan dan menyortir ulang baris.
-
Analisis tabel untuk memperbarui statistik untuk perencana kueri.
-
- materialized_view_name
-
Pandangan yang terwujud. Pernyataan DELETE bekerja pada tampilan terwujud yang digunakan untukStreaming konsumsi ke tampilan yang terwujud. Hanya pemilik tampilan terwujud atau pengguna dengan hak istimewa DELETE pada tampilan terwujud yang dapat menghapus baris darinya.
Anda tidak dapat menjalankan DELETE pada tampilan terwujud untuk streaming konsumsi dengan kebijakan keamanan tingkat baris (RLS) yang tidak memiliki izin IGNORE RLS yang diberikan kepada pengguna. Ada pengecualian untuk ini: Jika pengguna yang melakukan DELETE memiliki IGNORE RLS diberikan, itu berjalan dengan sukses. Untuk informasi selengkapnya, lihat Kepemilikan dan pengelolaan kebijakan RLS.
- MENGGUNAKAN table_name,...
-
Kata kunci USING digunakan untuk memperkenalkan daftar tabel ketika tabel tambahan direferensikan dalam kondisi klausa WHERE. Misalnya, pernyataan berikut menghapus semua baris dari tabel EVENT yang memenuhi kondisi gabungan di atas tabel EVENT dan PENJUALAN. Tabel PENJUALAN harus secara eksplisit disebutkan dalam daftar FROM:
delete from event using sales where event.eventid=sales.eventid;
Jika Anda mengulangi nama tabel target dalam klausa USING, operasi DELETE menjalankan self-join. Anda dapat menggunakan subquery di klausa WHERE alih-alih sintaks USING sebagai cara alternatif untuk menulis kueri yang sama.
- Kondisi DIMANA
-
Klausa opsional yang membatasi penghapusan baris ke baris yang cocok dengan kondisi. Misalnya, kondisi dapat berupa pembatasan pada kolom, kondisi gabungan, atau kondisi berdasarkan hasil kueri. Kueri dapat mereferensikan tabel selain target perintah DELETE. Sebagai contoh:
delete from t1 where col1 in(select col2 from t2);
Jika tidak ada kondisi yang ditentukan, semua baris dalam tabel akan dihapus.
Contoh
Hapus semua baris dari tabel CATEGORY:
delete from category;
Hapus baris dengan nilai CATID antara 0 dan 9 dari tabel CATEGORY:
delete from category where catid between 0 and 9;
Hapus baris dari tabel LISTING yang nilai SELLERIDnya tidak ada di tabel PENJUALAN:
delete from listing where listing.sellerid not in(select sales.sellerid from sales);
Dua kueri berikut menghapus satu baris dari tabel CATEGORY, berdasarkan gabungan ke tabel EVENT dan pembatasan tambahan pada kolom CATID:
delete from category using event where event.catid=category.catid and category.catid=9;
delete from category where catid in (select category.catid from category, event where category.catid=event.catid and category.catid=9);
Kueri berikut menghapus semua baris dari tampilan mv_cities
terwujud. Nama tampilan terwujud dalam contoh ini adalah contoh:
delete from mv_cities;