ALTER TABLE artykuly ADD UNIQUE (kod); Kwerenda ma za zadanie w tabeli artykuly
ALTER TABLE artykuly ADD UNIQUE (kod);Kwerenda ma za zadanie w tabeli artykuly
Poprawna jest odpowiedź o nałożeniu na kolumnę kod ograniczenia, które nie pozwoli na powtarzające się wartości. ADD UNIQUE (kod) tworzy indeks unikalny: od tej chwili polecenie INSERT albo UPDATE, które wpisałoby kod istniejący już w innym rekordzie, zakończy się błędem. Tak pilnuje się np. unikalności kodu produktu, loginu czy adresu e-mail.
Do zapamiętania: w odróżnieniu od klucza podstawowego tabela może mieć wiele ograniczeń UNIQUE, a kolumna z UNIQUE może (w MySQL) zawierać wartości NULL. To samo ograniczenie można zapisać od razu przy tworzeniu tabeli: kod VARCHAR(10) UNIQUE. Ograniczenie usuwa się, kasując utworzony dla niego indeks.
Najczęstszy błąd to uznanie, że polecenie samo porządkuje dane. Jeśli w kolumnie kod są już powtórzenia, serwer niczego nie usunie - odmówi założenia ograniczenia i zgłosi błąd zduplikowanej wartości. Duplikaty trzeba wcześniej poprawić poleceniem UPDATE albo usunąć poleceniem DELETE.
Dodanie nowej kolumny wymagałoby podania jej nazwy i typu, np. ALTER TABLE artykuly ADD kod VARCHAR(10); - tutaj w nawiasie stoi nazwa istniejącej kolumny, której dotyczy ograniczenie. Klucz obcy tworzy się zapisem ADD FOREIGN KEY (kod) REFERENCES inna_tabela(kolumna) i służy do powiązania tabel, a nie do zakazu powtórzeń - wartości klucza obcego mogą się powtarzać. Słowo UNIQUE dosłownie znaczy „unikalny”, więc to ono rozstrzyga o znaczeniu całej kwerendy. Warto czytać polecenie ALTER TABLE od słowa po nazwie tabeli: ADD, DROP, MODIFY lub CHANGE mówi, co się zmienia, a dalsza część - czego to dotyczy.