Database
 sql >> Base de données >  >> RDS >> Database

Comment créer une clé primaire en SQL

Problème :

Vous souhaitez créer une clé primaire pour une table dans une base de données.

Exemple :

Nous voulons une clé primaire pour une table appelée product .

Solution 1 (nouveau tableau) :

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

Discussion :

Pour créer une nouvelle table avec une colonne définie comme clé primaire, vous pouvez utiliser le mot-clé PRIMARY KEY à la fin de la définition de cette colonne. Dans notre exemple, nous créons la table product en utilisant un CREATE TABLE clause, avec les noms des colonnes et leurs types de données respectifs entre parenthèses. On choisit la colonne id comme clé primaire de cette table, on désigne donc PRIMARY KEY à la fin de la définition de cette colonne.

N'oubliez pas que vous ne pouvez créer qu'une seule clé primaire pour une table donnée.

Solution 2 (nouveau tableau) :

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

Discussion :

Une autre façon de définir une clé primaire lors de la création d'une nouvelle table est avec une PRIMARY KEY clause à la fin des définitions de colonne. Dans ce cas, on désigne une ou plusieurs colonnes comme argument de la PRIMARY KEY clause; ces colonnes deviennent la clé primaire de la table.

Notez que cette approche autorise les clés primaires construites avec plusieurs colonnes. Dans cet exemple, la clé primaire de la table product est formé de deux colonnes :name et producer .

Solution 3 (tableau existant) :

ALTER TABLE product
ADD PRIMARY KEY (id);

Discussion :

Il est également possible de définir une clé primaire pour une table existante qui n'a pas encore de clé primaire.

Ici, la table est modifiée à l'aide d'un ALTER TABLE clause. Le tableau (dans notre exemple, product ) est nommé d'après le mot-clé ALTER TABLE , puis le ADD PRIMARY KEY La clause suit avec le nom de la colonne à utiliser comme clé primaire. Notez que la table doit déjà exister avant que cette commande soit exécutée et la table ne doit pas déjà avoir une clé primaire.

Solution 4 (table existante, contrainte de clé primaire) :

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

Discussion :

Utilisez une requête comme celle-ci si vous souhaitez nommer une contrainte de clé primaire pour une table existante. Ici, la contrainte de clé primaire, PK_product_id , est généré à partir de la colonne id . Si vous ne spécifiez pas le nom de la contrainte, la base de données génère un nom de contrainte par défaut (le nom varie selon la base de données).