Mot-clé SQL PRIMARY KEY
CLÉ PRIMAIRE
La PRIMARY KEY
contrainte identifie de manière unique chaque enregistrement dans une table.
Une table ne peut avoir qu'une seule clé primaire, qui peut être constituée d'un seul ou de plusieurs champs.
CLÉ PRIMAIRE SQL sur CREATE TABLE
Le SQL suivant crée une PRIMARY KEY sur la colonne "ID" lors de la création de la table "Persons" :
MySQL :
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
SQL Server/Oracle/MS Access :
CREATE TABLE Persons
(
ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
Pour autoriser la dénomination d'une contrainte PRIMARY KEY et pour définir une contrainte PRIMARY KEY sur plusieurs colonnes, utilisez la syntaxe SQL suivante :
MySQL/SQL Server/Oracle/MS Access :
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);
Remarque : Dans l'exemple ci-dessus, il n'y a qu'UNE CLÉ PRIMAIRE (PK_Person). Cependant, la VALEUR de la clé primaire est composée de DEUX COLONNES (ID + LastName).
CLÉ PRIMAIRE SQL sur ALTER TABLE
Pour créer une contrainte PRIMARY KEY sur la colonne "ID" lorsque la table est déjà créée, utilisez le SQL suivant :
MySQL/SQL Server/Oracle/MS Access :
ALTER TABLE Persons
ADD PRIMARY KEY (ID);
Pour autoriser la dénomination d'une contrainte PRIMARY KEY et pour définir une contrainte PRIMARY KEY sur plusieurs colonnes, utilisez la syntaxe SQL suivante :
MySQL/SQL Server/Oracle/MS Access :
ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
Remarque : Si vous utilisez l'instruction ALTER TABLE pour ajouter une clé primaire, la ou les colonnes de clé primaire doivent déjà avoir été déclarées comme ne contenant pas de valeurs NULL (lors de la création de la table).
Supprimer une contrainte de clé primaire
Pour supprimer une contrainte PRIMARY KEY, utilisez le SQL suivant :
MySQL :
ALTER TABLE Persons
DROP PRIMARY KEY;
SQL Server/Oracle/MS Access :
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;