Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam Rekod Pendua dalam Jadual SQL Tanpa Kunci Utama?

Bagaimana untuk Memadam Rekod Pendua dalam Jadual SQL Tanpa Kunci Utama?

DDD
Lepaskan: 2025-01-04 22:23:39
asal
580 orang telah melayarinya

How to Delete Duplicate Records in SQL Tables Without a Primary Key?

Memadamkan Rekod Pendua Tanpa Kunci Utama dalam SQL

Rekod pendua boleh menimbulkan cabaran dalam integriti data, yang membawa kepada keputusan yang tidak tepat dan ketidakkonsistenan data. Dalam situasi di mana jadual tidak mempunyai kunci utama, mengenal pasti dan mengalih keluar rekod pendua boleh menjadi lebih kompleks.

Jika tiada kunci utama, satu pendekatan untuk menghapuskan rekod pendua ialah mengenal pasti rekod pendua yang mempunyai nilai yang sepadan dalam medan tertentu , seperti ID pekerja dan nombor Keselamatan Sosial. Untuk mencapai matlamat ini, subkueri boleh digunakan untuk membahagikan jadual berdasarkan kriteria yang diingini dan memberikan nombor jujukan kepada setiap rekod.

Pernyataan DELETE kemudiannya boleh digunakan untuk memadam rekod dengan nilai medan pendua dengan menapis pada yang mempunyai nombor baris lebih daripada 1. Ini memastikan bahawa hanya kejadian pertama bagi setiap set nilai unik adalah dikekalkan.

Pertimbangkan pertanyaan SQL berikut:

DELETE SUB FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
FROM Employee) SUB
WHERE SUB.cnt > 1
Salin selepas log masuk

Dalam pertanyaan ini, subkueri mengira nombor baris untuk setiap rekod, dipisahkan oleh medan EmpId, EmpName dan EmpSSN. Klausa ORDER BY memastikan bahawa nombor baris diberikan secara berurutan. Pernyataan DELETE kemudian mengalih keluar sebarang rekod dengan nombor baris lebih besar daripada 1, dengan berkesan memadamkan pendua.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Pendua dalam Jadual SQL Tanpa Kunci Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan