sql >> Databáze >  >> RDS >> Sqlserver

Jak definovat primární klíč automatického zvýšení na serveru SQL Server

Podobně jako u MySQL, PostgreSQL, Oracle a mnoha dalších relačních databází je SQL Server nejlépe využitelný při přiřazování jedinečných primárních klíčů většině databázových tabulek.

Výhody použití numerických, automaticky inkrementovaných primárních klíčů jsou četné, ale nejpůsobivějšími výhodami jsou vyšší rychlost při provádění dotazů a nezávislost na datech při prohledávání tisíců záznamů, které mohou obsahovat často pozměněná data jinde v tabulce. Díky konzistentnímu a jedinečnému číselnému identifikátoru mohou aplikace využívat výhod těchto rychlejších a spolehlivějších dotazů.

Základní vytváření tabulky

Po připojení k serveru SQL byste normálně začali CREATING novou tabulku, která obsahuje pole, které chcete použít jako svůj inkrementovaný primární klíč. V našem příkladu se budeme držet osvědčeného id pole:

CREATE TABLE books (
  id              INT           NOT NULL,
  title           VARCHAR(100)  NOT NULL,
  primary_author  VARCHAR(100),
);

Problém je v tom, že nemáme žádný způsob, jak ovládat naše id pole. Při vkládání nového záznamu musíme nejen ručně zadat hodnotu pro id , ale musíme provést dotaz předem, abychom se pokusili ověřit toto id hodnota již neexistuje (při řešení mnoha současných připojení je to téměř nemožné).

Použití omezení identity a primárního klíče

Ukázalo se, že řešení využívá dvě možnosti omezení poskytované serverem SQL.

První je PRIMARY KEY , který, jak název napovídá, nutí zadaný sloupec, aby se choval jako zcela jedinečný index pro tabulku, což umožňuje rychlé vyhledávání a dotazy.

Zatímco SQL Server umožňuje pouze jeden PRIMARY KEY omezení přiřazené jedné tabulce, tedy PRIMARY KEY lze definovat pro více než jeden sloupec. Ve scénáři s více sloupci mohou jednotlivé sloupce obsahovat duplicitní, nejedinečné hodnoty, ale PRIMARY KEY omezení zajišťuje, že každá kombinace omezených hodnot bude ve skutečnosti jedinečný vzhledem ke každé jiné kombinaci.

Druhým kouskem skládačky je IDENTITY omezení, které informuje SQL Server, aby automaticky zvýšil číselnou hodnotu v zadaném sloupci, kdykoli je nový záznam INSERTED . Zatímco IDENTITY může přijmout dva argumenty numerického seed kde budou hodnoty začínat a také increment , tyto hodnoty obvykle nejsou specifikovány pomocí IDENTITY omezení a místo toho jsou ponechány jako výchozí (obě výchozí 1 ).

S těmito novými znalostmi na dosah ruky můžeme přepsat naši předchozí CREATE TABLE přidáním našich dvou nových omezení.

CREATE TABLE books (
  id              INT           NOT NULL    IDENTITY    PRIMARY KEY,
  title           VARCHAR(100)  NOT NULL,
  primary_author  VARCHAR(100),
);

To je vše. Nyní id sloupec našich books tabulka bude automaticky zvýšena po každém INSERT a id pole je také zaručeno, že bude jedinečnou hodnotou.


  1. jak zřetězit řetězce?

  2. Multiplikační agregační operátor v SQL

  3. Úvod do C

  4. Vytvořte databázi MySQL