Problém:
Chcete, aby byl daný sloupec jedinečný v dané tabulce v databázi.
Příklad:
Rádi bychom vytvořili sloupec name
jedinečný v tabulce product
. Níže uvedený dotaz představuje jeden způsob, jak to udělat.
Řešení 1
CREATE TABLE product ( id INT NOT NULL PRIMARY KEY, name VARCHAR(100) UNIQUE, producer VARCHAR(100), category VARCHAR(100) );
Diskuse:
V tomto příkladu daný sloupec (sloupec name
) byl učiněn jedinečný přidáním klauzule UNIQUE na konec sloupce definice (name VARCHAR(100) UNIQUE
). Tato nová tabulka (v našem příkladu:product
) bude obsahovat sloupec (v našem příkladu:name
), který ukládá jedinečné hodnoty do řádků.
Řešení 2:
ALTER TABLE product ADD CONSTRAINT UQ_product_name UNIQUE(name);
Diskuse:
V tomto příkladu tabulka product
již existuje. Chceme upravit tuto tabulku a přidat do sloupce name
jedinečné omezení . To je možné pomocí ALTER TABLE
doložka. Nejprve napíšeme ALTER TABLE, poté vypíšeme název tabulky (v našem příkladu:product
) a dále přidáme klauzuli ADD CONSTRAINT
s názvem jedinečného omezení (v našem příkladu:UQ_product_name
). Poté následuje klíčové slovo UNIQUE se sloupci/sloupci (v našem příkladu je to sloupec:name
) v závorkách.
Můžete také vytvořit jedinečné omezení s více sloupci. Zde je postup:
Řešení 3:
ALTER TABLE product ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);
Diskuse:
V tomto příkladu se produkt tabulky změní pomocí ALTER TABLE
klauzule a klauzule ADD CONSTRAINT s názvem jedinečného omezení (v našem příkladu:UQ_product_name_producer
) následovaný UNIQUE
klíčové slovo se seznamem sloupců (v našem příkladu jsou dva sloupce:name
a producer
) v závorkách.