Mengalih Keluar Baris Pendua dalam Netezza SQL: Panduan Praktikal
Netezza SQL tidak secara langsung menyokong pendekatan klausa WITH
standard untuk memadamkan baris pendua. Walau bagaimanapun, alternatif yang mantap menggunakan kata kunci USING
. Kaedah ini berkesan menghapuskan pendua tanpa bergantung pada pengecam unik.
Pertanyaan berikut menunjukkan cara memadamkan entri pendua daripada jadual bernama 'table_with_dups':
<code class="language-sql">DELETE FROM table_with_dups T1 USING table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2; --Add all relevant columns here</code>
Nota Penting: Gantikan column1
, column2
, dsb. dengan nama lajur sebenar dalam jadual anda yang mentakrifkan baris pendua. Anda mesti memasukkan semua lajur yang menyumbang kepada takrifan pendua.
Pertanyaan ini membandingkan baris berdasarkan ctid
(pengecam baris unik yang dijana sistem) dan lajur yang ditentukan. Ia memadamkan baris dengan ctid
yang lebih kecil untuk setiap set pendua.
Pengesahan Pra-Pemadaman:
Sebelum melaksanakan pernyataan DELETE
, adalah penting untuk mengesahkan baris yang dijadualkan untuk dipadamkan. Jalankan pertanyaan ini untuk pratonton rekod yang terjejas:
<code class="language-sql">SELECT * FROM table_with_dups T1 USING table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2; --Add all relevant columns here</code>
Pernyataan SELECT ini mencerminkan pertanyaan DELETE, membolehkan anda memeriksa data sebelum membuat sebarang perubahan kekal. Langkah berjaga-jaga ini amat disyorkan untuk mengelakkan kehilangan data yang tidak diingini.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris Pendua dalam NetezzaSQL Tanpa Pengecam Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!