Clé primaire MySQL

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 de NULL vers des colonnes de clé primaire entraînera une erreur. Notez que MySQL ajoute implicitement une contrainte NOT 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

Leave a Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *