Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
DELETE
Menghapus baris dari tabel.
catatan
Ukuran maksimum untuk satu pernyataan SQL adalah 16 MB.
Sintaksis
[ 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 ekspresi tab el-umum. Lihat DENGAN klausa.
- FROM
-
Kata kunci FROM adalah opsional, kecuali ketika klausa USING ditentukan. Pernyataan
delete from event;dan operasi setaradelete event;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
-
Tabel sementara atau persisten. Hanya pemilik tabel atau pengguna dengan hak DELETE pada tabel yang dapat menghapus baris dari tabel.
Pertimbangkan untuk menggunakan perintah TRUNCATE untuk operasi penghapusan cepat tanpa syarat pada tabel besar; lihat. MEMOTONG
catatan
Setelah menghapus sejumlah besar baris dari tabel:
-
Vakum meja untuk merebut kembali ruang penyimpanan dan mengurutkan ulang baris.
-
Analisis tabel untuk memperbarui statistik untuk perencana kueri.
-
- nama_tampilan terwujud
-
Pandangan yang terwujud. Pernyataan DELETE bekerja pada tampilan terwujud yang digunakan untukStreaming konsumsi ke tampilan yang terwujud. Hanya pemilik tampilan yang terwujud atau pengguna dengan hak DELETE pada tampilan terwujud yang dapat menghapus baris darinya.
Anda tidak dapat menjalankan DELETE pada tampilan terwujud untuk penyerapan streaming 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 telah diberikan IGNORE RLS, itu berjalan dengan sukses. Untuk informasi selengkapnya, lihat kepemilikan dan manajemen 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 join di atas tabel EVENT dan SALES. Tabel SALES harus dinamai secara eksplisit 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 dalam klausa WHERE alih-alih sintaks USING sebagai cara alternatif untuk menulis kueri yang sama.
- Kondisi WHERE
-
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. Contoh:
delete from t1 where col1 in(select col2 from t2);Jika tidak ada kondisi yang ditentukan, semua baris dalam tabel dihapus.
Catatan penggunaan
-
Operasi DELETE menahan kunci eksklusif saat dijalankan di Amazon Redshift streaming tampilan terwujud yang terhubung ke salah satu dari berikut ini:
Aliran data Amazon Kinesis
Topik Streaming Terkelola Amazon untuk Apache Kafka
Aliran eksternal yang didukung, seperti topik Confluent Cloud Kafka
Untuk informasi selengkapnya, lihat Streaming konsumsi ke tampilan yang terwujud.
Contoh
Hapus semua baris dari tabel KATEGORI:
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 SELLERID tidak ada di tabel SALES:
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 batasan 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 ter mv_cities wujud. Nama tampilan terwujud dalam contoh ini adalah contoh:
delete from mv_cities;