4 sposoby na usunięcie zduplikowanych rekordów w Oracle

Spisu treści:

4 sposoby na usunięcie zduplikowanych rekordów w Oracle
4 sposoby na usunięcie zduplikowanych rekordów w Oracle

Wideo: 4 sposoby na usunięcie zduplikowanych rekordów w Oracle

Wideo: 4 sposoby na usunięcie zduplikowanych rekordów w Oracle
Wideo: Przechowywanie zdjęć i backup w fotografii - poradnik dla początkujących 2024, Może
Anonim

Podczas pracy w Oracle możesz zauważyć, że niektóre z Twoich rekordów mają duplikaty. Możesz usunąć te zduplikowane wiersze, identyfikując je i używając ich RowID lub adresu wiersza. Przed rozpoczęciem należy utworzyć tabelę kopii zapasowej na wypadek, gdyby konieczne było odwołanie się do niej po usunięciu rekordów.

Kroki

Metoda 1 z 4: Identyfikacja duplikatu

Usuń zduplikowane rekordy w Oracle Krok 1
Usuń zduplikowane rekordy w Oracle Krok 1

Krok 1. Zidentyfikuj duplikat

W takim przypadku zidentyfikuj przykładowy duplikat „Alan”. Upewnij się, że rekordy, które próbujesz usunąć, są faktycznie duplikatami, wprowadzając poniższy kod SQL.

Usuń zduplikowane rekordy w Oracle Krok 2
Usuń zduplikowane rekordy w Oracle Krok 2

Krok 2. Identyfikacja z kolumny o nazwie „Nazwy

” W wystąpieniu kolumny o nazwie „Nazwiska” należy zastąpić „nazwa_kolumny” nazwą Nazwy.

Usuń zduplikowane rekordy w Oracle Krok 3
Usuń zduplikowane rekordy w Oracle Krok 3

Krok 3. Identyfikacja z innych kolumn

Jeśli próbujesz zidentyfikować duplikat według innej kolumny, na przykład wiek Alana, a nie jego imię, wpisz „Wiek” w miejsce „nazwa_kolumny” i tak dalej.

wybierz nazwę_kolumny, liczba (nazwa_kolumny) z grupy tabel według nazwy_kolumny mającej liczbę (nazwa_kolumny) > 1;

Metoda 2 z 4: Usuwanie pojedynczego duplikatu

Usuń zduplikowane rekordy w Oracle Krok 4
Usuń zduplikowane rekordy w Oracle Krok 4

Krok 1. Wybierz „nazwę z nazw

Po słowie „SQL”, co oznacza standardowy język zapytań, wpisz „wybierz nazwę z nazw”.

Usuń zduplikowane rekordy w Oracle Krok 5
Usuń zduplikowane rekordy w Oracle Krok 5

Krok 2. Usuń wszystkie wiersze ze zduplikowaną nazwą

Po "SQL" wpisz "usuń z nazw gdzie name='Alan';." Pamiętaj, że tutaj ważna jest wielkość liter, więc spowoduje to usunięcie wszystkich wierszy o nazwie „Alan”. Po „SQL” wpisz „zatwierdź”.

Usuń zduplikowane rekordy w Oracle Krok 6
Usuń zduplikowane rekordy w Oracle Krok 6

Krok 3. Wynajmij wiersz bez duplikatu

Teraz, gdy usunąłeś wszystkie wiersze z przykładową nazwą „Alan”, możesz wstawić jeden z powrotem, wpisując „wstaw do wartości nazw („Alan”);”. Po „SQL” wpisz „commit”, aby utworzyć nowy wiersz.

Usuń zduplikowane rekordy w Oracle Krok 7
Usuń zduplikowane rekordy w Oracle Krok 7

Krok 4. Zobacz swoją nową listę

Po wykonaniu powyższych kroków możesz sprawdzić, czy nie masz już zduplikowanych rekordów, wpisując „wybierz * z nazw”.

SQL > wybierz nazwę z nazw; NAZWA ------------------------------ Alan Carrie Tom Alan zaznaczono wiersze. SQL > usuń z nazw gdzie name='Alan'; usunięte wiersze. SQL > zatwierdź; Zatwierdzenie zakończone. SQL > wstawiaj do nazw wartości ('Alan'); utworzony wiersz. SQL > zatwierdź; Zatwierdź zakończone. SQL > wybierz * z nazw; NAZWA ------------------------------ Alan Carrie Tom zaznaczono wiersze.

Metoda 3 z 4: Usuwanie wielu duplikatów

Usuń zduplikowane rekordy w Oracle Krok 8
Usuń zduplikowane rekordy w Oracle Krok 8

Krok 1. Wybierz RowID, który chcesz usunąć

Po "SQL" wpisz "wybierz wiersz, nazwę z nazw;."

Usuń zduplikowane rekordy w Oracle Krok 9
Usuń zduplikowane rekordy w Oracle Krok 9

Krok 2. Usuń duplikat

Po „SQL” wpisz „usuń z nazw a where rowid > (wybierz min(rowid) z nazw b gdzie b.name=a.name);” aby usunąć zduplikowane rekordy.

Usuń zduplikowane rekordy w Oracle Krok 10
Usuń zduplikowane rekordy w Oracle Krok 10

Krok 3. Sprawdź, czy nie ma duplikatów

Po wykonaniu powyższego polecenia sprawdzają, czy nadal masz zduplikowane rekordy, wpisując „wybierz wiersz, nazwa z nazw;” a następnie „zatwierdź”.

SQL > wybierz rowid, nazwa z nazw; NAZWA ROWIDU ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan zaznaczono wiersze. SQL > usuń z nazw a gdzie rowid > (wybierz min(rowid) z nazw b gdzie b.nazwa=a.nazwa); usunięte wiersze. SQL > wybierz rowid, nazwa z nazw; NAZWA ROWIDU ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Wybrano wiersze Toma. SQL > zatwierdź; Zatwierdzenie zakończone.

Metoda 4 z 4: Usuwanie wierszy z kolumnami

Usuń zduplikowane rekordy w Oracle Krok 11
Usuń zduplikowane rekordy w Oracle Krok 11

Krok 1. Wybierz swoje wiersze

Po "SQL" wpisz "wybierz * z nazw;" aby zobaczyć swoje wiersze.

Usuń zduplikowane rekordy w Oracle Krok 12
Usuń zduplikowane rekordy w Oracle Krok 12

Krok 2. Usuń zduplikowane wiersze, identyfikując ich kolumnę

Po „SQL” wpisz „usuń z nazw a where rowid > (wybierz min(rowid) z nazw b gdzie b.name=a.name i b.age=a.age);” aby usunąć zduplikowane rekordy.

Usuń zduplikowane rekordy w Oracle Krok 13
Usuń zduplikowane rekordy w Oracle Krok 13

Krok 3. Sprawdź, czy nie ma duplikatów

Po wykonaniu powyższych kroków wpisz „wybierz * z nazw;” a następnie "commit", aby sprawdzić, czy pomyślnie usunąłeś zduplikowane rekordy.

SQL > wybierz * z nazw; NAZWA WIEK ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 wybrane wiersze. SQL > usuń z nazw a where rowid > (wybierz min(rowid) z nazw b gdzie b.name=a.name i b.age=a.age); wiersz usunięty. SQL > wybierz * z nazw; NAZWA WIEK ------------------------------ ---------- Alan 50 Carrie 51 Tom Wybrano 52 rzędy. SQL > zatwierdź; Zatwierdź zakończone.

Ostrzeżenia

  • Utwórz tabelę zapasową we własnym logowaniu, której możesz użyć, aby pokazać, co było w niej przed usunięciem (na wypadek pytań).

    SQL > utwórz tabelę alan.names_backup jako wybierz * z nazw; Utworzono tabelę.

Zalecana: