4 viisi Oracle'i topeltkirjete kustutamiseks

Sisukord:

4 viisi Oracle'i topeltkirjete kustutamiseks
4 viisi Oracle'i topeltkirjete kustutamiseks

Video: 4 viisi Oracle'i topeltkirjete kustutamiseks

Video: 4 viisi Oracle'i topeltkirjete kustutamiseks
Video: Piltide salvestamine 2024, Mai
Anonim

Oracle'is töötades võite avastada, et mõnel teie kirjel on duplikaadid. Saate need dubleerivad read kustutada, tuvastades need ja kasutades selle RowID või rea aadressi. Enne alustamist peaksite looma varutabeli juhuks, kui peate pärast kirjete kustutamist neile viitama.

Sammud

Meetod 1 /4: duplikaadi tuvastamine

Kustutage korduvad kirjed Oracle'is 1. toimingus
Kustutage korduvad kirjed Oracle'is 1. toimingus

Samm 1. Tuvastage duplikaat

Sel juhul tuvastage näite duplikaat "Alan". Veenduge, et kustutatavad kirjed on tegelikult duplikaadid, sisestades alloleva SQL -i.

Kustutage korduvad kirjed Oracle'i 2. toimingus
Kustutage korduvad kirjed Oracle'i 2. toimingus

Samm 2. Identifitseerimine veerust nimega "Nimed

"Veeru nimega" Nimed "korral asendaksite veeru_nimi" nimedega.

Kustutage korduvad kirjed Oracle'is 3. sammus
Kustutage korduvad kirjed Oracle'is 3. sammus

Samm 3. Teiste veergude tuvastamine

Kui prooviksite duplikaati tuvastada mõne muu veeru järgi, näiteks Alani vanuse, mitte tema nime järgi, sisestaksite veeru_nimi asemel veeru „Ages” jne.

valige veeru_nimi, loendage (veeru_nimi) tabelirühmast veeru_nime järgi, mille arv (veeru_nimi)> 1;

Meetod 2/4: ühe duplikaadi kustutamine

Kustutage korduvad kirjed Oracle'i 4. toimingus
Kustutage korduvad kirjed Oracle'i 4. toimingus

Samm 1. Valige "nimi nimede hulgast

"Pärast" SQL -i ", mis tähistab standardset päringukeelt, sisestage" valige nimedest nimi ".

Kustutage korduvad kirjed Oracle'i 5. toimingus
Kustutage korduvad kirjed Oracle'i 5. toimingus

Samm 2. Kustutage kõik duplikaatnimega read

Pärast "SQL" sisestage "delete" nimedest, kus name = 'Alan';. " Pange tähele, et suurtähtede kasutamine on siin oluline, seega kustutatakse kõik read, mille nimi on "Alan". Pärast "SQL" sisestage "pühenduma".

Kustutage korduvad kirjed Oracle'i 6. toimingus
Kustutage korduvad kirjed Oracle'i 6. toimingus

Samm 3. Rentida rida ilma duplikaadita

Nüüd, kui olete kustutanud kõik read näite nimega "Alan", saate ühe tagasi sisestada, sisestades "sisesta nime väärtustesse ('Alan');." Pärast "SQL -i" sisestage uue rea loomiseks "pühenduma".

Kustutage korduvad kirjed Oracle'i 7. toimingus
Kustutage korduvad kirjed Oracle'i 7. toimingus

Samm 4. Vaadake oma uut loendit

Kui olete ülaltoodud sammud lõpetanud, saate kontrollida, kas teil pole enam topeltkirjeid, sisestades "vali * nimede seast".

SQL> valige nimedest nimi; NAME ------------------------------ Alan Carrie Tom Alan read valitud. SQL> kustutage nimedest, kus nimi = 'Alan'; read kustutatud. SQL> kohustus; Kohustus täidetud. SQL> sisestada nimedesse väärtused ('Alan'); rida loodud. SQL> kohustus; Kohustus täidetud. SQL> valige * nimede seast; NIMI ------------------------------ Alan Carrie Tom ridu valitud.

3. meetod 4 -st: mitme duplikaadi kustutamine

Kustutage korduvad kirjed Oracle'i 8. sammus
Kustutage korduvad kirjed Oracle'i 8. sammus

Samm 1. Valige RowID, mida soovite kustutada

Pärast "SQL" sisestage "select rowid, name from names;."

Kustutage korduvad kirjed Oracle'i 9. toimingus
Kustutage korduvad kirjed Oracle'i 9. toimingus

Samm 2. Kustutage duplikaat

Pärast "SQL -i" sisestage "kustuta nimedest a kus rowid> (valige nimedest b kus b.name = a.name) min (rowid);" dubleerivate kirjete kustutamiseks.

Kustutage korduvad kirjed Oracle'i 10. toimingus
Kustutage korduvad kirjed Oracle'i 10. toimingus

Samm 3. Kontrollige duplikaate

Kui olete ülaltoodud lõpule viinud, kontrollivad käsud, kas teil on endiselt kirjeid dubleerivaid, sisestades "select rowid, name from names;" ja siis "pühenduma".

SQL> valige rowid, nimi nimede seast; ROWID NIMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan read valitud. SQL> kustuta nimedest a kus rowid> (vali min (rowid) nimedest b kus b.name = a.name); read kustutatud. SQL> valige rowid, nimi nimedest; ROWID NIMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom read valitud. SQL> kohustus; Kohustus täidetud.

Meetod 4/4: ridade kustutamine veergudega

Kustutage korduvad kirjed Oracle'i sammus 11
Kustutage korduvad kirjed Oracle'i sammus 11

Samm 1. Valige oma read

Pärast "SQL" sisestage "select * nimedest;" oma ridade nägemiseks.

Kustutage korduvad kirjed Oracle'i 12. sammus
Kustutage korduvad kirjed Oracle'i 12. sammus

Samm 2. Kustutage duplikaatridad, tuvastades nende veeru

Pärast "SQL" "sisestage" kustutage nimedest a kus rowid> (valige min (rowid) nimedest b kus b.name = a.name ja b.age = a.age); " duplikaatide kustutamiseks.

Kustutage korduvad kirjed Oracle'i 13. sammus
Kustutage korduvad kirjed Oracle'i 13. sammus

Samm 3. Kontrollige duplikaate

Kui olete ülaltoodud sammud lõpetanud, sisestage "vali nimedest *;" ja seejärel "pühenduma", et kontrollida, kas olete duplikaatide edukalt kustutanud.

SQL> valige * nimede seast; NIMI VANUS ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 read valitud. SQL> kustutage nimedest a kus rowid> (valige min (rowid) nimedest b kus b.name = a.name ja b.age = a.age); rida kustutatud. SQL> valige * nimede seast; NIMI VANUS ------------------------------ ---------- Alan 50 Carrie 51 Tom Valitud 52 rida. SQL> kohustus; Kohustus täidetud.

Hoiatused

  • Looge oma sisselogimisel varutabel, mille abil saate näidata, mis oli enne kustutamist (kui teil on küsimusi).

    SQL> luua tabel alan.names_backup kui valida * nimedest; Tabel on loodud.

Soovitan: