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

Jak vytvořit primární klíč v SQL

Problém:

Chcete vytvořit primární klíč pro tabulku v databázi.

Příklad:

Chceme primární klíč pro tabulku s názvem product .

Řešení 1 (nová tabulka):

CREATE TABLE product (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL,
price DECIMAL(7,2)
);

Diskuse:

Chcete-li vytvořit novou tabulku se sloupcem definovaným jako primární klíč, můžete použít klíčové slovo PRIMARY KEY na konci definice tohoto sloupce. V našem příkladu vytvoříme tabulku product pomocí CREATE TABLE klauzule s názvy sloupců a jejich příslušnými datovými typy v závorkách. Jako primární klíč této tabulky zvolíme ID sloupce, takže označíme PRIMARY KEY na konci definice tohoto sloupce.

Mějte na paměti, že pro danou tabulku můžete vytvořit pouze jeden primární klíč.

Řešení 2 (nová tabulka):

CREATE TABLE product (
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL),
price DECIMAL(7,2),
PRIMARY KEY(name, producer)
);

Diskuse:

Dalším způsobem, jak definovat primární klíč během vytváření nové tabulky, je PRIMARY KEY klauzule na konci definic sloupců. V tomto případě určíme jeden nebo více sloupců jako argument PRIMARY KEY doložka; tyto sloupce se stanou primárním klíčem tabulky.

Všimněte si, že tento přístup umožňuje vytvoření primárních klíčů s více sloupci. V tomto příkladu je primární klíč pro tabulku product je tvořena dvěma sloupci:name a producer .

Řešení 3 (stávající tabulka):

ALTER TABLE product
ADD PRIMARY KEY (id);

Diskuse:

Je také možné definovat primární klíč pro existující tabulku, která ještě nemá primární klíč.

Zde je tabulka změněna pomocí ALTER TABLE doložka. Tabulka (v našem příkladu product ) je pojmenován podle klíčového slova ALTER TABLE a poté ADD PRIMARY KEY následuje klauzule s názvem sloupce, který má být použit jako primární klíč. Všimněte si, že tabulka již musí existovat před provedením tohoto příkazu a tabulka již nesmí mít primární klíč.

Řešení 4 (stávající tabulka, omezení primárního klíče):

ALTER TABLE product
ADD CONSTRAINT PK_product_id PRIMARY KEY (id);

Diskuse:

Pokud chcete pojmenovat omezení primárního klíče pro existující tabulku, použijte dotaz jako tento. Zde je omezení primárního klíče, PK_product_id , se generuje ze sloupce id . Pokud nezadáte název omezení, databáze vygeneruje výchozí název omezení (název se bude lišit podle databáze).


  1. Volání uložené procedury T-SQL ADO.NET způsobí výjimku SqlTimeoutException

  2. Získejte předchozí a další řádek z řádků vybraných s podmínkami (WHERE).

  3. Proč mají celá čísla v databázi řádků n-tice příponu 'L'?

  4. Nainstalujte řazení utf8 v PostgreSQL