Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadam Rekod Pendua dari Jadual SQL Tanpa Kunci Utama?
Mengendalikan Rekod Pendua dalam Jadual SQL Tanpa Kekunci Utama
Jika tiada kunci utama, memadamkan rekod pendua daripada jadual SQL boleh mencabar. Mari kita pertimbangkan senario berikut:
Jadual bernama "pekerja" mengandungi rekod berikut tanpa kunci utama:
create table employee ( EmpId number, EmpName varchar2(10), EmpSSN varchar2(11) ); insert into employee values(1, 'Jack', '555-55-5555'); insert into employee values (2, 'Joe', '555-56-5555'); insert into employee values (3, 'Fred', '555-57-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555'); insert into employee values (1, 'Jack', '555-55-5555'); insert into employee values (4, 'Mike', '555-58-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6 ,'Lisa', '555-70-5555'); insert into employee values (5, 'Cathy', '555-59-5555'); insert into employee values (6, 'Lisa', '555-70-5555');
Memandangkan jadual ini, matlamatnya adalah untuk memadamkan rekod pendua sambil mengekalkan yang unik. Untuk mencapai ini, kita boleh menggunakan gabungan fungsi "ROW_NUMBER()" dan pernyataan "DELETE":
DELETE SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
Memecahkan kod:
Dengan melaksanakan pertanyaan ini, rekod pendua dalam jadual "pekerja" akan menjadi dialih keluar, hanya meninggalkan rekod unik:
select * from employee; EmpId EmpName EmpSSN 1 Jack 555-55-5555 2 Joe 555-56-5555 3 Fred 555-57-5555 4 Mike 555-58-5555 5 Cathy 555-59-5555 6 Lisa 555-70-5555
Atas ialah kandungan terperinci Bagaimana untuk Memadam Rekod Pendua dari Jadual SQL Tanpa Kunci Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!