SQL – Kako ukloniti duplikate iz tabela?

Ponekad će vam zatrebati mogućnost uklanjanja dupliciranih slogova (onih koji imaju iste vrednosti nekih ili svih atributa). Uklanjanje viška istih slogova, sa zadržavanjem samo jednog sloga, može se izvršiti na više načina, a mi ćemo vam prikazati metod sa upotrebom jedne privremene (temporary) tabele. Za potrebe primera kreiraćemo tabelu sa dva polja i dva ista sloga. Recimo, tabela „Linkovi“ može ovako da izgleda (SELECT * FROM Linkovi;):


naziv URL
———————————————-
Krstarica www.krstarica.com
Yahoo www.yahoo.com
Krstarica www.krstarica.com
———————————————-

Da bismo uklonili ponavljanje istog sloga (Krstarica), uradićemo sledeće:
  1. Kreiraćemo privremenu tabelu selektovanjem samo različitih slogova osnovne tabele („Linkovi“).


    CREATE TABLE Linkovi_Priv AS
    SELECT DISTINCT naziv, URL
    FROM Linkovi;

  2. Možemo proveriti stanje u novonastaloj tabeli i uveriti se da sada nema dupliciranih slogova:


    SELECT *
    FROM Linkovi_Priv;

    Rezultat će biti:


    naziv URL
    ———————————————-
    Krstarica www.krstarica.com
    Yahoo www.yahoo.com
    ———————————————-

  3. Vršimo brisanje osnovne tabele iz baze, instrukcijom DROP:


    DROP TABLE Linkovi;

  4. I na kraju, vršimo preimenovanje privremene tabele (Linkovi_Priv) u osnovnu (Linkovi), instrukcijom ALTER:


    ALTER TABLE Linkovi_Priv RENAME TO Linkovi;

    Ne zaboravite samo da ponovo kreirate sve potrebne indekse, i dozvole za rad i pristup novoj tabeli (kao na izbrisanoj originalnoj tabeli)

Pratite Krstaricu na www.krstarica.com