Maison  >  Article  >  base de données  >  Comment ajouter une clé primaire dans MySQL ?

Comment ajouter une clé primaire dans MySQL ?

青灯夜游
青灯夜游original
2019-05-08 10:14:2542142parcourir

Le nom complet de « PRIMARY KEY » est « contrainte de clé primaire ». Une contrainte de clé primaire MySQL est une colonne ou une combinaison de colonnes dont la valeur identifie de manière unique chaque ligne d'une table. Une ou plusieurs colonnes de ce type sont appelées clé primaire de la table, par laquelle l'intégrité de l'entité de la table est renforcée. Alors, comment ajouter des contraintes de clé primaire dans MySQL ? L’article suivant vous le présentera.

Comment ajouter une clé primaire dans MySQL ?

La contrainte de clé primaire définit une clé primaire dans la table pour déterminer de manière unique l'identifiant de chaque ligne de données dans la table. La clé primaire peut être une certaine colonne du tableau ou une combinaison de plusieurs colonnes. Une clé primaire composée de plusieurs colonnes est appelée clé primaire composite. Les clés primaires doivent respecter les règles suivantes :

● Chaque table ne peut définir qu'une seule clé primaire.

● La valeur de la clé primaire doit identifier de manière unique chaque ligne de la table et ne peut pas être NULL, c'est-à-dire qu'il ne peut pas y avoir deux lignes de données dans la table avec la même valeur de clé primaire. C'est le principe d'unicité.

● Un nom de colonne ne peut apparaître qu'une seule fois dans la liste de clés primaires composites.

● La clé primaire composite ne peut pas contenir de colonnes redondantes inutiles. Lorsqu'une colonne de la clé primaire composite est supprimée, si la clé primaire composée des colonnes restantes satisfait toujours au principe d'unicité, alors la clé primaire composite est incorrecte. C'est le principe de minimisation.

1. Ajoutez des contraintes de clé primaire lors de la création de la table

Dans l'instruction CREATE TABLE, la clé primaire est spécifiée via le mot-clé PRIMARY KEY.

Spécifiez la clé primaire lors de la définition de la colonne. Les règles de syntaxe sont les suivantes :

<字段名> <数据类型> PRIMARY KEY [默认值]

Exemple : Créez la table de données tb_emp 1 dans la base de données test_db, et sa clé primaire est id

mysql> CREATE TABLE tb_emp1
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

Dans la définition Une fois toutes les colonnes renseignées, le format de syntaxe pour spécifier la clé primaire est :

[CONSTRAINT <约束名>] PRIMARY KEY [字段名]

Exemple : Créez la table de données tb_emp 2 dans la base de données test_db, et sa table de données primaire la clé est id

mysql> CREATE TABLE tb_emp2
    -> (
    -> id INT(11),
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(id)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp2;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.14 sec)

2, Ajouter des contraintes de clé primaire après avoir créé la table

Après avoir créé la table, vous pouvez ajouter des contraintes de clé primaire lors de la modification de la table de données. les règles de syntaxe sont :

ALTER TABLE <数据表名> ADD PRIMARY KEY(<列名>);

Exemple : Modifier la table de données tb_emp3 et changer les champs id est défini comme clé primaire

mysql> ALTER TABLE tb_emp3
    -> ADD PRIMARY KEY(id);
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp3;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.12 sec)

3 Définir la clé primaire composite <.>

Vous pouvez également ajouter une clé primaire composite lors de la création de la table. A ce moment, la clé primaire est composée de plusieurs champs. Règles de grammaire Comme suit :

PRIMARY KEY [字段1,字段2,…,字段n]

Exemple : Créer la table de données tb_emp4. . Supposons qu'il n'y ait pas d'identifiant de clé primaire dans le tableau Afin d'identifier de manière unique un employé, vous pouvez combiner le nom et le deptId comme clé primaire

mysql> CREATE TABLE tb_emp4
    -> (
    -> name VARCHAR(25),
    -> deptId INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(id,deptId)
    -> );
Query OK, 0 rows affected (0.37 sec)
mysql> DESC tb_emp4;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name   | varchar(25) | NO   | PRI | NULL    |       |
| deptId | int(11)     | NO   | PRI | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.14 sec)
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn