Database
 sql >> база данни >  >> RDS >> Database

Как да създадете първичен ключ в SQL

Проблем:

Искате да създадете първичен ключ за таблица в база данни.

Пример:

Искаме първичен ключ за таблица, наречена product .

Решение 1 (нова таблица):

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

Дискусия:

За да създадете нова таблица с колона, дефинирана като първичен ключ, можете да използвате ключовата дума PRIMARY KEY в края на определението на тази колона. В нашия пример създаваме таблицата product с помощта на CREATE TABLE клауза, с имената на колоните и съответните им типове данни в скоби. Избираме идентификатора на колоната като първичен ключ на тази таблица, така че обозначаваме PRIMARY KEY в края на дефиницията на тази колона.

Имайте предвид, че можете да създадете само един първичен ключ за дадена таблица.

Решение 2 (нова таблица):

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

Дискусия:

Друг начин за дефиниране на първичен ключ по време на създаването на нова таблица е с PRIMARY KEY клауза в края на дефинициите на колоните. В този случай обозначаваме една или повече колони като аргумент на PRIMARY KEY клауза; тези колони стават първичен ключ за таблицата.

Имайте предвид, че този подход позволява първични ключове, изградени с множество колони. В този пример първичният ключ за таблицата product се формира от две колони:name и producer .

Решение 3 (съществуваща таблица):

ALTER TABLE product
ADD PRIMARY KEY (id);

Дискусия:

Също така е възможно да се дефинира първичен ключ за съществуваща таблица, която все още няма първичен ключ.

Тук таблицата се променя с помощта на ALTER TABLE клауза. Таблицата (в нашия пример product ) е кръстен на ключовата дума ALTER TABLE , след това ADD PRIMARY KEY клауза следва с името на колоната, която ще се използва като първичен ключ. Имайте предвид, че таблицата трябва вече да съществува, преди тази команда да бъде изпълнена и таблицата не трябва да има първичен ключ.

Решение 4 (съществуваща таблица, ограничение на първичния ключ):

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

Дискусия:

Използвайте заявка като тази, ако искате да наименувате ограничение на първичен ключ за съществуваща таблица. Тук ограничението на първичния ключ, PK_product_id , се генерира от колоната id . Ако не посочите името на ограничението, базата данни генерира име на ограничение по подразбиране (името ще варира според базата данни).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично управление на индекси в Azure SQL база данни

  2. Случаят с оценката на кардиналността Червена херинга

  3. Съхранената процедура за получаване на настройките на екземпляра

  4. Топ 10 причини защо трябва да научите SQL

  5. Какво правят и какво не правят виртуалните файлови статисти, ви разказват за забавянето на I/O