Oracle'da çalışırken bazı kayıtlarda kopyalar bulabilirsiniz. Yinelenen satırları tanımlayarak ve karşılık gelen RowID diğer adı satır adresini kullanarak kaldırabilirsiniz. Başlamadan önce, kayıt silindikten sonra bir referansa ihtiyaç duymanız ihtimaline karşı bir yedek tablo oluşturun.
Adım
Yöntem 1/4: Yinelenenleri Tanımlama
Adım 1. Kopyaları tanımlayın
Bu örnekte, yinelenen "Alan"ı tanımlıyoruz. Aşağıdaki SQL'i girerek silinecek kayıtların gerçekten kopya olduğundan emin olun.
Adım 2. "Ad" başlıklı sütundan tanımlayın
Sütunun başlığı "Ad" ise, " column_name " öğesini Ad ile değiştirmeniz gerekir.
Adım 3. Diğer sütunları tanımlayın
Farklı sütunlardan kopyaları tanımlamaya çalışıyorsanız, örneğin Alan'ın adı yerine yaşı, " sütun_adı " yerine "Yaş" girin vb.
tablo grubundan sütun_adı, sayı(sütun_adı) öğesini, sayım (sütun_adı) > 1 olan sütun_adı ile seçin;
Yöntem 2/4: Tek Kopyaları Kaldırma
Adım 1. " isimlerden isim " seçeneğini seçin
"SQL"den sonra (Standart Sorgu Dili'nin kısaltması), "adlardan isim seç" girin.
Adım 2. Yinelenen adlara sahip tüm satırları silin
"SQL"den sonra, name ='Alan'; olan isimlerden " delete yazın." Bu adımın "Alan" adlı tüm satırları silebilmesi için burada büyük harf kullanımının önemli olduğuna dikkat edilmelidir. "SQL" den sonra "commit" girin
Adım 3. Satırları kopya olmadan yeniden girin
Artık tüm satırları silip "Alan" ile değiştirdiğinize göre, " ad değerlerine ekle ('Alan');" yazarak bir satırı tekrar doldurun. "SQL"den sonra yeni bir satır oluşturmak için " commit " girin.
Adım 4. Yeni listeyi görüntüleyin
Yukarıdaki adımları tamamladıktan sonra, " isimlerden seç * " yazarak daha fazla mükerrer kayıt olmadığından emin olabilirsiniz.
SQL > isimlerden isim seçin; ADI --------------------------------- Alan Citra Tomi Alan Barış seçildi. SQL > name='Alan'; Satır silinir. SQL > taahhüt eder; \Taahhüt tamamlandı. SQL > isimlerin değerlerine ekle('Alan'); satır oluşturuldu. SQL > taahhüt eder; Taahhüt tamamlandı. SQL > isimlerden * seçin; İSİM --------------------------------- Alan Citra Tomi satırları seçildi.
Yöntem 3/4: Birden Çok Kopyaları Kaldırma
Adım 1. Silmek istediğiniz RowID'yi seçin
"SQL"den sonra " select rowid, name from name;" girin.
Adım 2. Kopyaları kaldırın
"SQL"den sonra, " delete from a where rowid > (min(rowid) öğesini b.name=a.name) girin;" kopyaları kaldırmak için.
Adım 3. Kopyaları kontrol edin
Yukarıdaki adımları tamamladıktan sonra, " select rowid, name from name;" yazarak yinelemeleri kontrol edin. sonra "taahhüt et".
SQL > satır kimliği seç, isimlerden isim; SATIR ADI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan satırları seçildi. SQL > a burada satır kimliğinden sil > (b.name=a.adı b.adından min(satır) öğesini seçin); satırlar silindi. SQL > satır kimliği seç, isimlerden isim; SATIR ADI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom satırları seçildi. SQL > taahhüt eder; Taahhüt tamamlandı.
Yöntem 4/4: Sütunlara Göre Satırları Silme
Adım 1. Satırı seçin
"SQL"den sonra "select * from name;" girin. çizgiyi görebilmek için.
Adım 2. Sütunlarını tanımlayarak yinelenen satırları kaldırın
"SQL'"den sonra " delete from name from a where rowid > yazın (b.name=a.name ve b.age=a.age) adlarından min(rowid) öğesini seçin);" yinelenen kayıtları kaldırmak için.
Adım 3. Kopyaları kontrol edin
Yukarıdaki adımları tamamladıktan sonra " select * from name;" yazın. ardından kopyaların gerçekten kaldırılıp kaldırılmadığını görmek için " taahhütte bulunun ".
SQL > isimlerden * seçin; ADI YAŞ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 satırlar seçildi. SQL > a burada satır kimliğinden sil > (b.name=a.name ve b.age=a.age 'de b adlarından min(rowid) öğesini seçin); satır silindi. SQL > isimlerden * seçin; İSİM YAŞ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 satır seçildi. SQL > taahhüt eder; Taahhüt tamamlandı.
Uyarı
-
Hiçbir veri silinmediğinde (sorunuz varsa) içerik referansı olarak kullanılabilecek şekilde oturum açmanızda yinelenen bir tablo oluşturun.
SQL > isimlerden seç * olarak alan.names_backup tablosu oluştur; Tablo oluşturuldu.