SQL contrainte PRIMARY KEY
La contrainte de clé primaire identifie de façon unique chaque enregistrement dans une table de base de données.
Les clés primaires doivent contenir des valeurs uniques.
Une colonne de clé primaire ne peut pas contenir des valeurs NULL.
La plupart des tables doivent avoir une clé primaire, et chaque table peut avoir qu'une seule clé primaire.
SQL contrainte PRIMARY KEY sur CREATE TABLE
Le SQL suivante crée une clé primaire sur la "P_Id" colonne lorsque le "Persons" table est créée:
MySQL:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
Pour permettre nommage d'une contrainte de clé primaire, et pour définir une contrainte de clé primaire sur plusieurs colonnes, utilisez la syntaxe SQL suivante:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
Note: Dans l'exemple ci - dessus il n'y a qu'une seule clé primaire (pk_PersonID). Toutefois, la valeur de la clé primaire est composée de deux colonnes (p_id + LastName).
SQL contrainte PRIMARY KEY sur ALTER TABLE
Pour créer une contrainte de clé primaire sur la "P_Id" colonne lorsque la table est déjà créé, utilisez l'instruction SQL suivante:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
Pour permettre nommage d'une contrainte de clé primaire, et pour définir une contrainte de clé primaire sur plusieurs colonnes, utilisez la syntaxe SQL suivante:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
Note: Si vous utilisez l'instruction ALTER TABLE pour ajouter une clé primaire, la colonne de clé primaire (s) doit déjà avoir été déclarée à ne pas contenir des valeurs NULL (lorsque la table a été créée).
Pour supprimer une contrainte de clé primaire
Pour supprimer une contrainte PRIMARY KEY, utilisez l'instruction SQL suivante:
MySQL:
ALTER TABLE Persons
DROP PRIMARY KEY
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID