Oracle'da çalışırken, bazı kayıtlarınızın kopyaları olduğunu görebilirsiniz. Bu yinelenen satırları tanımlayarak ve RowID'sini veya satır adresini kullanarak silebilirsiniz. Başlamadan önce, kayıtları sildikten sonra bunlara başvurmanız gerekebileceği için bir yedek tablo oluşturmalısınız.
adımlar
Yöntem 1/4: Kopyanızı Tanımlama
Adım 1. Kopyayı tanımlayın
Bu durumda, örnek kopyayı tanımlayın, "Alan." Aşağıdaki SQL'i girerek silmeye çalıştığınız kayıtların gerçekten kopya olduğundan emin olun.
Adım 2. "Adlar" adlı bir sütundan tanımlama
"Adlar adlı bir sütun örneğinde, "sütun_adı" yerine Adlar koyarsınız.
Adım 3. Diğer sütunlardan tanımlama
Kopyaları farklı bir sütunla tanımlamaya çalışıyorsanız, örneğin Alan'ın adı yerine yaşı, "sütun_adı" yerine "Yaşlar" girersiniz 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 Bir Kopyaları Silme
Adım 1. İsimlerden "isim" seçeneğini seçin
"Standart Sorgu Dili anlamına gelen "SQL"den sonra "adlardan isim seç" yazın.
Adım 2. Yinelenen ada sahip tüm satırları silin
"SQL"den sonra, name='Alan'; olan adlardan "delete" yazın. Burada büyük harf kullanımının önemli olduğunu unutmayın, bu nedenle bu, "Alan" adlı tüm satırları silecektir. "SQL"den sonra "commit" yazın.
Adım 3. Satırı kopya olmadan kiralayın
Örnek adı "Alan" olan tüm satırları sildiğinize göre, "ad değerlerine ekle ('Alan');" yazarak bir satır geri ekleyebilirsiniz. "SQL"den sonra, yeni satırınızı oluşturmak için "commit" yazın.
Adım 4. Yeni listenize bakın
Yukarıdaki adımları tamamladıktan sonra, "adlardan * seç" yazarak artık mükerrer kayıtlarınız olmadığından emin olabilirsiniz.
SQL > isimlerden isim seçin; ADI --------------------------------- Alan Carrie Tom Alan satırları seçildi. SQL > name='Alan'; satırlar silindi. SQL > taahhüt; Taahhüt tamamlandı. SQL > ad değerlerine ekle ('Alan'); satır oluşturuldu. SQL > taahhüt; Taahhüt tamamlandı. SQL > isimlerden * seçin; İSİM --------------------------------- Alan Carrie Tom satırları seçildi.
Yöntem 3/4: Birden Çok Çoğaltmayı Silme
Adım 1. Silmek istediğiniz RowID'yi seçin
"SQL"den sonra, "select rowid, name from name;" girin.
Adım 2. Kopyayı silin
"SQL"den sonra, "delete from name from a where rowid > girin (b.name=a.name olan b adlarından min(rowid) öğesini seçin);" yinelenen kayıtları silmek için
Adım 3. Kopyaları kontrol edin
Yukarıdakileri tamamladıktan sonra, komutlar "seç satır kimliği, isimlerden isim;" yazarak yinelenen kayıtlarınız olup olmadığını kontrol eder. ve 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; Taahhüt tamamlandı.
Yöntem 4/4: Sütunlu Satırları Silme
Adım 1. Satırlarınızı seçin
"SQL"den sonra, "adlardan * seçin;" girin. satırlarınızı görmek için
Adım 2. Sütunlarını tanımlayarak yinelenen satırları silin
"SQL'"den sonra "delete from a name from rowid > (b.name=a.name ve b.age=a.age) adlarından min(rowid) öğesini seçin);" yinelenen kayıtları silmek için
Adım 3. Kopyaları kontrol edin
Yukarıdaki adımları tamamladıktan sonra, "adlardan * seç" yazın; ve ardından yinelenen kayıtları başarıyla sildiğinizi kontrol etmek için "taahhüt edin".
SQL > isimlerden * seçin; İSİM YAŞ ------------------------------ ---------- Alan 50 Carrie 51 Tom 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 Carrie 51 Tom 52 satır seçildi. SQL > taahhüt; Taahhüt tamamlandı.
Uyarılar
-
Herhangi bir silme işlemi gerçekleşmeden önce orada ne olduğunu göstermek için kullanabileceğiniz kendi oturum açma işleminizde bir yedek tablo oluşturun (herhangi bir soru olması durumunda).
SQL > isimlerden seç * olarak alan.names_backup tablosu oluştur; Tablo oluşturuldu.