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?

Patricia Arquette
Lepaskan: 2025-01-03 13:03:43
asal
991 orang telah melayarinya

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

Padamkan Rekod Pendua dalam Jadual SQL Tanpa Kunci Utama

Jika tiada kunci utama, mengenal pasti rekod pendua dalam pangkalan data boleh mencabar . Walau bagaimanapun, menggunakan gabungan fungsi tetingkap dan pengendali logik membolehkan pemadaman pendua yang cekap.

Dalam contoh yang disediakan, matlamatnya adalah untuk mengalih keluar rekod daripada jadual Pekerja yang mempunyai nilai EmpId dan EmpSSN yang sama. Untuk mencapai ini:

  1. Buat lajur sementara menggunakan fungsi ROW_NUMBER() untuk menetapkan kiraan pada setiap rekod berdasarkan pembahagian oleh medan EmpId, EmpName dan EmpSSN. Ini mencipta jadual di mana setiap gabungan unik mempunyai kiraan unik.
ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
Salin selepas log masuk
  1. Buat subkueri yang menapis jadual untuk hanya memasukkan rekod dengan kiraan lebih daripada 1, menunjukkan rekod pendua .
SELECT 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
  1. Gunakan kenyataan DELETE untuk mengalih keluar rekod pendua daripada jadual Pekerja berdasarkan keputusan subkueri.
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

Dengan mengikuti langkah-langkah ini, rekod pendua akan dipadamkan dengan berkesan daripada jadual Pekerja, memastikan integriti data tanpa memerlukan data utama kunci.

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan