Déclarer une colonne comme "NON NULL" signifie que la colonne n'accepte pas les valeurs NULL, mais accepte zéro (0), et la chaîne vide elle-même est une valeur. Donc si nous voulons insérer zéro ou une chaîne vide dans une colonne MySQL définie comme NOT NULL, il n'y aura aucun problème. Cela deviendra clair en comparant 0 et la chaîne vide à NULL -
mysql> Select 0 IS NULL, 0 IS NOT NULL; +-----------+---------------+ | 0 IS NULL | 0 IS NOT NULL | +-----------+---------------+ | 0 | 1 | +-----------+---------------+ 1 row in set (0.00 sec)
L'ensemble de résultats ci-dessus montre que zéro (0) n'est pas NULL. Cela signifie que zéro (0) est lui-même une valeur, puisque nous savons que NULL signifie aucune valeur.
mysql> Select '' IS NULL, '' IS NOT NULL; +------------+----------------+ | '' IS NULL | '' IS NOT NULL | +------------+----------------+ | 0 | 1 | +------------+----------------+ 1 row in set (0.00 sec)
L'ensemble de résultats ci-dessus montre que la chaîne vide (« ») n'est pas NULL. Cela signifie que la chaîne vide ('') est elle-même une valeur, puisque nous savons que NULL signifie aucune valeur.
mysql> create table test(id int NOT NULL, Name Varchar(10)); Query OK, 0 rows affected (0.19 sec) mysql> Insert into test6(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav'); Query OK, 3 rows affected, 1 warning (0.08 sec) Records: 3 Duplicates: 0 Warnings: 1 Warning (Code 1366): Incorrect integer value: '' for column 'id' at row 3 mysql> Select * from test; +----+--------+ | id | Name | +----+--------+ | 1 | Gaurav | | 0 | Rahul | | 0 | Aarav | +----+--------+ 3 rows in set (0.00 sec)
Comme vous pouvez le voir dans l'ensemble de résultats ci-dessus, nous pouvons insérer zéro (0) une chaîne vide ("") dans une colonne déclarée NON NULL.
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!