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