Når du arbejder i Oracle, kan du opleve, at nogle af dine poster har dubletter. Du kan slette disse dublerede rækker ved at identificere dem og bruge dets RowID eller rækkeadresse. Inden du begynder, skal du oprette en backup -tabel, hvis du skal henvise til dem, når du har slettet poster.
Trin
Metode 1 af 4: Identificering af dit duplikat
Trin 1. Identificer dubletten
I dette tilfælde skal du identificere eksemplet på duplikatet "Alan". Sørg for, at de poster, du forsøger at slette, faktisk er dubletter ved at indtaste SQL nedenfor.
Trin 2. Identificering ud fra en kolonne med navnet "Navne
"I tilfælde af en kolonne med navnet" Navne "ville du erstatte" kolonne_navn "med navne.
Trin 3. Identificering fra andre kolonner
Hvis du forsøgte at identificere duplikatet ved en anden kolonne, f.eks. Alders alder frem for hans navn, ville du indtaste "Alder" i stedet for "column_name" og så videre.
vælg column_name, count (column_name) fra tabelgruppe efter column_name med count (column_name)> 1;
Metode 2 af 4: Sletning af et enkelt duplikat
Trin 1. Vælg "navn fra navne
"Efter" SQL ", som står for Standard forespørgselssprog, skal du indtaste" vælg navn fra navne."
Trin 2. Slet alle rækker med duplikatnavnet
Efter "SQL" skal du indtaste "delete from names where name = 'Alan';." Bemærk, at store bogstaver er vigtige her, så dette vil slette alle de rækker, der hedder "Alan". Efter "SQL" skal du indtaste "commit".
Trin 3. Lej rækken uden en kopi
Nu hvor du har slettet alle rækker med eksempelnavnet "Alan", kan du indsætte en tilbage ved at indtaste "indsæt i navneværdier ('Alan');." Efter "SQL" skal du indtaste "commit" for at oprette din nye række.
Trin 4. Se din nye liste
Når du har gennemført ovenstående trin, kan du kontrollere, om du ikke længere har dubletter, ved at indtaste "vælg * fra navne."
SQL> vælg navn fra navne; NAVN ------------------------------ Alan Carrie Tom Alan rækker valgt. SQL> slet fra navne, hvor navn = 'Alan'; rækker slettet. SQL> begå; Forpligt dig færdig. SQL> indsæt i navne værdier ('Alan'); række oprettet. SQL> begå; Forpligt dig færdig. SQL> vælg * fra navne; NAVN ------------------------------ Alan Carrie Tom rækker valgt.
Metode 3 af 4: Sletning af flere dubletter
Trin 1. Vælg det RowID, du vil slette
Efter "SQL" skal du indtaste "vælg rowid, navn fra navne;."
Trin 2. Slet dubletten
Efter "SQL" skal du indtaste "slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name);" at slette dublerede poster.
Trin 3. Kontroller for dubletter
Når du har gennemført ovenstående, kontrollerer kommandoer, om du stadig har dubletter, ved at indtaste "select rowid, name from names;" og derefter "begå".
SQL> vælg rowid, navn fra navne; ROWID NAVN ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rækker valgt. SQL> slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name); rækker slettet. SQL> vælg rowid, navn fra navne; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom rækker valgt. SQL> begå; Forpligt dig færdig.
Metode 4 af 4: Sletning af rækker med kolonner
Trin 1. Vælg dine rækker
Efter "SQL" skal du indtaste "vælg * fra navne;" for at se dine rækker.
Trin 2. Slet dubletter ved at identificere deres kolonne
Efter "SQL" indtast "slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name og b.age = a.age);" for at slette de dublerede poster.
Trin 3. Kontroller for dubletter
Når du har gennemført ovenstående trin, skal du indtaste "vælg * fra navne;" og derefter "begå" for at kontrollere, at du har slettet de dublerede poster.
SQL> vælg * fra navne; NAVNALDER ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 markerede rækker. SQL> slet fra navne a hvor rowid> (vælg min (rowid) fra navne b hvor b.name = a.name og b.age = a.age); række slettet. SQL> vælg * fra navne; NAVNEALDER ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 rækker valgt. SQL> begå; Forpligt dig færdig.
Advarsler
-
Opret en backup-tabel i dit eget login, som du kan bruge til at vise, hvad der var der, før der blev slettet (hvis der er spørgsmål).
SQL> opret tabel alan.names_backup som vælg * fra navne; Tabellen er oprettet.