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!