Oracle -da işləyərkən qeydlərinizin bəzilərinin dublikatları olduğunu görə bilərsiniz. Bu dublikat cərgələri müəyyən edərək RowID və ya satır ünvanını istifadə edərək silə bilərsiniz. Başlamazdan əvvəl, qeydləri sildikdən sonra onlara istinad etməyiniz lazım olduğu halda bir ehtiyat masa yaratmalısınız.
Addımlar
Metod 1 /4: Dublikatınızı müəyyənləşdirin
Addım 1. Dublikatı müəyyənləşdirin
Bu halda, "Alan" dublikat nümunəsini müəyyənləşdirin. Aşağıdakı SQL -ə daxil olaraq silməyə çalışdığınız qeydlərin əslində təkrarlandığından əmin olun.
Addım 2. "Adlar" adlı bir sütundan müəyyən edilməsi
"" Adlar "adlı bir sütun halında," ustun_adı "nı Adlarla əvəz edərdiniz.
Addım 3. Digər sütunlardan müəyyən edilməsi
Dublikatı fərqli bir sütunla təyin etməyə çalışsaydınız, məsələn, adını deyil, Alanın yaşını, "sütun_adı" yerinə "Əsrlər" yazardınız və s.
count (column_name)> 1 olan sütun_adı ilə tablo qrupundan column_name, count (column_name) seçin;
Metod 2 /4: Bir Dublikatın silinməsi
Addım 1. Adlardan "adı seçin
"Standart Sorgu Dili mənasını verən" SQL "dən sonra" adlardan ad seçin "daxil edin.
Addım 2. Dublikat adı olan bütün satırları silin
"SQL" dən sonra, ad = 'Alan'; olan adlardan sil "daxil edin." Qeyd edək ki, burada böyük hərflərin yazılması vacibdir, buna görə də "Alan" adlı bütün sətirlər silinəcəkdir. "SQL" dən sonra "əmr et" daxil edin.
Addım 3. Satırı dublikat olmadan kirayəyə götürün
"Alan" nümunə adı olan bütün sətirləri sildiyiniz üçün "ad dəyərlərinə daxil edin ('Alan');" yazaraq bir arxa əlavə edə bilərsiniz. "SQL" dən sonra, yeni satırınızı yaratmaq üçün "öhdəlik" daxil edin.
Addım 4. Yeni siyahınıza baxın
Yuxarıdakı addımları tamamladıqdan sonra "adlardan * seçin" yazaraq artıq təkrar qeydlər olmadığından əmin ola bilərsiniz.
SQL> adlardan ad seçin; ADI ------------------------------ Alan Carrie Tom Alan satırları seçildi. SQL> name = 'Alan' olduğu adlardan silin; sətirlər silindi. SQL> əmr et; Öhdəlik tamamlandı. SQL> ad dəyərlərinə daxil edin ('Alan'); sıra yaradılmışdır. SQL> əmr et; Öhdəlik tamamlandı. SQL> adlardan * seçin; ADI ------------------------------ Alan Carrie Tom satırları seçildi.
Metod 3 /4: Birdən çox dublikatın silinməsi
Addım 1. Silmək istədiyiniz RowID seçin
"SQL" dən sonra "daxil edin" seçin rowid, adlardan ad;."
Addım 2. Dublikatı silin
"SQL" dən sonra, "rowid> adlarından silin (b.name = a.name b adlarından min (rowid) seçin);" dublikat qeydləri silmək üçün.
Addım 3. Dublikatları yoxlayın
Yuxarıdakıları tamamladıqdan sonra əmrlər, "sıradan adı, adlardan ad seçin" yazaraq hələ də təkrarlanan qeydlərinizin olub olmadığını yoxlayır. və sonra "öhdəlik götür".
SQL> rowid seçin, adlardan ad; ROWID ADI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan satırları seçildi. SQL> adlardan silin a harada rowid> (b adlarından min (rowid) seçin b harada b.name = a.name); sətirlər silindi. SQL> rowid, adlardan ad seçin; ROWID ADI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom satırları seçildi. SQL> əmr et; Öhdəlik tamamlandı.
Metod 4 /4: Sütunlu Satırların Silinməsi
Addım 1. Sıralarınızı seçin
"SQL" dən sonra "adlardan * seçin;" daxil edin. sıralarınızı görmək.
Addım 2. Sütunlarını təyin edərək cüt sətirləri silin
"SQL '" yazdıqdan sonra "rowid> olduğu adlardan silin (b.name = a.name və b.age = a.age adlarından b (min) seçin"); dublikat qeydləri silmək üçün.
Addım 3. Dublikatları yoxlayın
Yuxarıdakı addımları tamamladıqdan sonra "adlardan seçin * daxil edin;" və sonra təkrarlanan qeydləri uğurla sildiyinizi yoxlamaq üçün "öhdəlik götürün".
SQL> adlardan * seçin; ADI YAŞ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 sıralar seçildi. SQL> adlardan silin a burada rowid> (b.name = a.name və b.age = a.age adlarından min (rowid) seçin); sıra silindi. SQL> adlardan * seçin; ADI YAŞ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 sıra seçildi. SQL> əmr et; Öhdəlik tamamlandı.
Xəbərdarlıqlar
-
Hər hansı bir silinmə baş verməzdən əvvəl orada olanları göstərmək üçün istifadə edə biləcəyiniz bir giriş masası yaradın (hər hansı bir sualınız varsa).
SQL> adlardan * seçin olaraq alan.names_backup cədvəli yaradın; Cədvəl yaradıldı.