Dirbdami „Oracle“galite pastebėti, kad kai kurie jūsų įrašai turi dublikatus. Galite ištrinti šias pasikartojančias eilutes jas identifikuodami ir naudodami jos „RowID“arba eilutės adresą. Prieš pradėdami, turėtumėte sukurti atsarginę lentelę, kad galėtumėte ištrinti įrašus.
Žingsniai
1 metodas iš 4: dublikato identifikavimas
Žingsnis 1. Nustatykite dublikatą
Tokiu atveju nurodykite pavyzdžio dublikatą „Alanas“. Įsitikinkite, kad įrašai, kuriuos bandote ištrinti, iš tikrųjų yra pasikartojantys, įvesdami žemiau esantį SQL.
Žingsnis 2. Identifikavimas iš stulpelio pavadinimu „Vardai
„Jei naudojate stulpelį pavadinimu„ Vardai “,„ stulpelio_pavadinimas “pakeisite pavadinimu.
Žingsnis 3. Nustatymas iš kitų stulpelių
Jei dublikatą bandytumėte identifikuoti pagal kitą stulpelį, pvz., Alano amžių, o ne jo vardą, vietoj „column_name“įveskite „Amžius“ir pan.
pasirinkite stulpelio_pavadinimą, skaičių (stulpelio_pavadinimą) iš lentelių grupės pagal stulpelio_pavadinimą, kurio skaičius (stulpelio_pavadinimas)> 1;
2 metodas iš 4: vieno dublikato ištrynimas
Žingsnis 1. Pasirinkite „vardas iš vardų
Po „SQL“, reiškiančio standartinę užklausų kalbą, įveskite „pasirinkite vardą iš pavadinimų“.
2 veiksmas. Ištrinkite visas eilutes su pasikartojančiu pavadinimu
Po „SQL“įveskite „delete iš pavadinimų, kur name = 'Alan';. Atminkite, kad didžiosios raidės čia yra svarbios, todėl bus ištrintos visos eilutės, pavadintos „Alanas“. Po „SQL“įveskite „įsipareigoti“.
Žingsnis 3. Išnuomokite eilutę be dublikato
Dabar, kai ištrynėte visas eilutes su pavyzdiniu pavadinimu „Alanas“, galite įterpti vieną atgal, įvesdami „įterpti į vardo reikšmes“(„Alan“);. Po „SQL“įveskite „įsipareigoti“, kad sukurtumėte naują eilutę.
Žingsnis 4. Peržiūrėkite naują sąrašą
Atlikę aukščiau nurodytus veiksmus, galite patikrinti, ar nebeturite pasikartojančių įrašų, įvesdami „pasirinkite * iš vardų“.
SQL> pasirinkite vardą iš pavadinimų; PAVADINIMAS ------------------------------ Pasirinktos Alano Carrie Tomo Alano eilutės. SQL> ištrinti iš pavadinimų, kur vardas = 'Alanas'; eilutės ištrintos. SQL> įsipareigoti; Įsipareigojimas baigtas. SQL> įterpti į vardus reikšmes ('Alan'); eilutė sukurta. SQL> įsipareigoti; Įsipareigojimas baigtas. SQL> pasirinkite * iš pavadinimų; PAVADINIMAS ------------------------------ Pasirinktos Alano Carrie Tom eilutės.
3 metodas iš 4: kelių dublikatų ištrynimas
Žingsnis 1. Pasirinkite RowID, kurį norite ištrinti
Po „SQL“įveskite „select rowid, name from names;.“
2 veiksmas. Ištrinkite dublikatą
Po "SQL" įveskite "delete iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name);" ištrinti pasikartojančius įrašus.
Žingsnis 3. Patikrinkite, ar nėra dublikatų
Baigę aukščiau nurodytas užduotis, komandos patikrina, ar vis dar turite pasikartojančių įrašų, įvesdami „pasirinkite eilutę, vardą iš vardų“. ir tada „įsipareigoti“.
SQL> pasirinkite eilutę, pavadinimą iš pavadinimų; ROWID PAVADINIMAS ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan eilutės pasirinktos. SQL> ištrinti iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name); eilutės ištrintos. SQL> pasirinkite eilutę, pavadinimą iš pavadinimų; ROWID PAVADINIMAS ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Pasirinktos Tom eilutės. SQL> įsipareigoti; Įsipareigojimas baigtas.
4 metodas iš 4: eilučių su stulpeliais trynimas
1 žingsnis. Pasirinkite savo eilutes
Po „SQL“įveskite „select * from names;“pamatyti savo eilutes.
2 veiksmas. Ištrinkite pasikartojančias eilutes identifikuodami jų stulpelį
Po "SQL" "įveskite" ištrinkite iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name ir b.age = a.age); " ištrinti pasikartojančius įrašus.
Žingsnis 3. Patikrinkite, ar nėra dublikatų
Kai atliksite aukščiau nurodytus veiksmus, įveskite "pasirinkite * iš pavadinimų;" ir tada „įsipareigoti“, kad patikrintumėte, ar sėkmingai ištrynėte pasikartojančius įrašus.
SQL> pasirinkite * iš pavadinimų; VARDAS AMŽIUS ------------------------------ ---------- Alanas 50 Carrie 51 Tomas 52 Alanas 50 pasirinktos eilutės. SQL> ištrinti iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name ir b.age = a.age); eilutė ištrinta. SQL> pasirinkite * iš pavadinimų; VARDAS AMŽIUS ------------------------------ ---------- Alanas 50 Carrie 51 Tomas Pasirinktos 52 eilutės. SQL> įsipareigoti; Įsipareigojimas baigtas.
Įspėjimai
-
Prisijungę sukurkite atsarginę lentelę, kurią galite naudoti norėdami parodyti, kas buvo prieš ištrinant (jei kyla klausimų).
SQL> sukurti lentelę alan.names_backup kaip pasirinkti * iš pavadinimų; Lentelė sukurta.