Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Baris PostgreSQL Pendua Semasa Menyimpan Satu Salinan?
Memelihara Salinan Tunggal: Memadamkan Baris PostgreSQL Pendua
Dalam bidang pengurusan data, menghadapi baris pendua boleh menimbulkan cabaran. PostgreSQL, sistem pengurusan pangkalan data hubungan yang popular, menawarkan pelbagai pilihan untuk mengendalikan situasi sedemikian. Satu senario khusus timbul apabila pengguna berusaha untuk memadamkan baris pendua sambil mengekalkan satu salinan daripada setiap set.
Penyelesaian Pertanyaan
Untuk mencapai ini, pertanyaan SQL boleh digunakan . Pertanyaan berikut mengikut langkah yang digariskan dalam artikel yang disediakan:
DELETE FROM foo WHERE id NOT IN (SELECT min(id) --or max(id) FROM foo GROUP BY hash)
Penjelasan
Pertanyaan ini menggunakan subkueri untuk mengenal pasti nilai ID minimum atau maksimum bagi setiap kumpulan daripada baris pendua. Lajur cincang mewakili kriteria berdasarkan penduaan yang ditentukan. Dengan mengecualikan ID yang tidak sepadan dengan minimum atau maksimum, pertanyaan mengekalkan satu salinan setiap set pendua sambil memadamkan yang lain.
Pertanyaan Alternatif
Pendekatan alternatif melibatkan penggunaan fungsi ROW_NUMBER() OVER ():
DELETE FROM foo AS f WHERE ROW_NUMBER() OVER (PARTITION BY hash ORDER BY id) > 1
Pertanyaan ini memberikan nombor baris pada setiap baris, dibahagikan mengikut lajur cincang dan diisih mengikut lajur id dalam tertib menaik. Baris dengan nombor baris lebih daripada 1 (iaitu, pendua) kemudiannya dipadamkan.
Kesimpulan
Dengan melaksanakan salah satu pertanyaan yang dibentangkan dalam PostgreSQL, pengguna boleh memadamkan pendua dengan berkesan baris sambil mengekalkan satu salinan daripada setiap set. Pendekatan ini membolehkan penyingkiran data berlebihan sambil mengekalkan integriti set data asal.
Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris PostgreSQL Pendua Semasa Menyimpan Satu Salinan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!