Maison  >  Article  >  base de données  >  Comment peut-on dire que AUTO_INCRMENT a priorité sur PRIMARY KEY dans MySQL ?

Comment peut-on dire que AUTO_INCRMENT a priorité sur PRIMARY KEY dans MySQL ?

WBOY
WBOYavant
2023-09-15 19:41:02564parcourir

我们怎么能说在 MySQL 中 AUTO_INCRMENT 优先于 PRIMARY KEY 呢?

Cela peut être compris avec un exemple où la valeur NULL a été insérée dans la colonne AUTO_INCREMENT et MySQL fournit le nouveau numéro de séquence.

mysql> Create table employeeinfo(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Name Varchar(10));
Query OK, 0 rows affected (0.16 sec)

mysql> Insert into employeeinfo(id, Name) values(NULL, 'Saurabh');
Query OK, 1 row affected (0.07 sec)

mysql> Select * from employeeinfo;
+----+---------+
| id | Name    |
+----+---------+
| 1  | Saurabh |
+----+---------+
1 row in set (0.00 sec)

À partir de l'exemple ci-dessus, nous pouvons voir que la colonne "id" a été déclarée NOT NULL avec le bit PRIMARY KEY, mais elle accepte toujours les valeurs NULL. En effet, la colonne "id" a également été déclarée comme AUTO_INCRMENT. Ainsi, même si nous insérons une valeur NULL dans cette colonne, MySQL renverra le numéro de séquence.

En revanche, si nous essayons d'insérer NULL dans une colonne déclarée comme PRIMARY KEY mais non déclarée comme AUTO_INCRMENT, alors MySQL renverra une erreur comme suit -

mysql> create table people(id INT primary key, name varchar(10));
Query OK, 0 rows affected (0.18 sec)

mysql> Insert into people(id, name) values(NULL, 'Rahul');
ERROR 1048 (23000): Column 'id' cannot be null

Par conséquent, nous pouvons dire que AUTO_INCRMENT a priorité sur PRIMARY KEY contrainte car dans tous les cas, les procédures sous AUTO_INCRMENT doivent être résolues plus tôt pour vérifier la contrainte PRIMARY KEY.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer