sql >> Databáze >  >> RDS >> Database

Jak udělat sloupec jedinečným v SQL?

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.


  1. Jak se připojíte ke stejnému stolu dvakrát v mysql?

  2. SQLite - Změna tabulky

  3. Proč je používání jednotkových testů skvělou investicí do vysoce kvalitní architektury

  4. Výlet přes GIMR