Résumé: dans ce didacticiel, vous apprendrez à utiliser la contrainte de clé primaire MySQL pour créer la clé primaire d’une table.
Introduction à la clé primaire MySQL
Une clé primaire est une colonne ou un ensemble de colonnes qui identifie de manière unique chaque ligne de la table. La clé primaire suit ces règles:
- Une clé primaire doit contenir des valeurs uniques. Si la clé primaire se compose de plusieurs colonnes, la combinaison de valeurs dans ces colonnes doit être unique.
- Une colonne de clé primaire ne peut pas avoir de valeurs
NULL
. Toute tentative d’insertion ou de mise à jour deNULL
vers des colonnes de clé primaire entraînera une erreur. Notez que MySQL ajoute implicitement une contrainteNOT NULL
aux colonnes de clé primaire. - Une table peut avoir une seule et une seule clé primaire.
Parce que MySQL fonctionne plus rapidement avec des entiers, le type de données de la colonne de clé primaire doit être l’entier, par exemple INT,
BIGINT
. Et vous devez vous assurer que les plages de valeurs de type entier pour la clé primaire sont suffisantes pour stocker toutes les lignes possibles que la table peut contenir.
Une colonne de clé primaire a souvent le AUTO_INCREMENT
attribut qui génère automatiquement un entier séquentiel chaque fois que vous insérez une nouvelle ligne dans la table.
Lorsque vous définissez une clé primaire pour une table, MySQL crée automatiquement un index appelé PRIMARY
.
Exemples MySQL PRIMARY KEY
La contrainte PRIMARY KEY
permet de définir une clé primaire d’une table lorsque vous créez ou modifiez une table.
1) Définissez une contrainte PRIMARY KEY dans CREATE TABLE
En règle générale, vous définissez la clé primaire d’une table dans le CREATE TABLE
.
Si la clé primaire a une colonne, vous pouvez utiliser la contrainte PRIMARY KEY
comme contrainte de colonne:
Code language: SQL (Structured Query Language) (sql)
Lorsque la clé primaire a plus d’une colonne, vous devez utiliser e e PRIMARY KEY
contrainte comme contrainte de table.
Dans cette syntaxe, vous séparez les colonnes de column_list
par des virgules ( ,).
La contrainte de table PRIMARY KEY
peut être utilisée lorsque la clé primaire a une colonne:
L’exemple suivant crée une table nommée users
dont la clé primaire est la colonne user_id
:
Cette instruction crée le roles
table qui a la contrainte PRIMARY KEY
comme contrainte de table:
Si la clé primaire se compose de plusieurs colonnes, vous devez les spécifier à la fin de l’instruction CREATE TABLE
. Vous placez une liste de colonnes de clé primaire séparées par des virgules entre parenthèses suivies des mots clés PRIMARY KEY
.
L’exemple suivant crée le user_roles
table dont la clé primaire se compose de deux colonnes: user_id
et role_id
. Il définit la contrainte PRIMARY KEY
comme contrainte de table:
Notez que l’instruction a également créé deux contraintes de clé étrangère.
2) Define PRIMARY KEY contraintes utilisant ALTER TABLE
Si une table, pour certaines raisons, ne possède pas de clé primaire, vous pouvez utiliser l’instruction ALTER TABLE
pour ajouter une clé primaire à le tableau comme suit:
Code language: SQL (Structured Query Language) (sql)
L’exemple suivant ajoute la colonne id
à la clé primaire.
Commencez par créer la table pkdemos
sans clé primaire.
Code language: SQL (Structured Query Language) (sql)
Ensuite, ajoutez une clé de la table pkdemos
à l’aide de l’instruction ALTER TABLE
:
Code language: SQL (Structured Query Language) (sql)
Si vous ajoutez une clé primaire à une table qui contient déjà des données. Les données de la ou des colonnes, qui seront incluses dans la clé primaire, doivent être uniques et non NULL.
PRIMARY KEY vs UNIQUE KEY vs KEY
KEY
est le synonyme de INDEX
. Vous utilisez KEY
lorsque vous souhaitez créer un index pour une colonne ou un ensemble de colonnes qui ne fait pas partie d’une clé primaire ou d’une clé unique.
Un index UNIQUE
garantit que les valeurs d’une colonne doivent être uniques. Contrairement à l’index PRIMARY
, MySQL autorise les valeurs NULL
dans l’index UNIQUE
. De plus, une table peut avoir plusieurs index UNIQUE
.
Supposons que email
et username
des utilisateurs de la table users
doivent être uniques.Pour appliquer ces règles, vous pouvez définir les index UNIQUE
pour les colonnes email
et username
comme l’instruction suivante:
Ajoutez un index UNIQUE
pour la colonne username
:
Code language: SQL (Structured Query Language) (sql)
Ajouter un index UNIQUE
pour la colonne email
:
Code language: SQL (Structured Query Language) (sql)
Dans ce didacticiel, vous avez appris à créer une clé primaire pour une nouvelle table ou à ajouter une clé primaire à une table existante.
- Ce tutoriel vous a-t-il été utile?
- OuiNon