Maison > Article > base de données > Empêcher les valeurs nulles dans les champs MySQL ?
Utilisez le déclencheur BEFORE INSERT sur la table pour empêcher les valeurs nulles dans les champs MySQL. Créons d'abord une table -
mysql> create table DemoTable(Value int); Query OK, 0 rows affected (0.85 sec)
Créons un déclencheur pour empêcher les valeurs nulles d'apparaître dans un champ MySQL -
mysql> DELIMITER // mysql> create trigger preventing_to_insert_zero_value before insert on DemoTable for each row begin if(new.Value = 0) then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'You can not provide 0 value'; END if; end // Query OK, 0 rows affected (0.34 sec) mysql> DELIMITER ;
Insérons une valeur 0 dans la table et vérifions si la valeur sera insérée. Cela ne permettra pas -
mysql> insert into DemoTable values(0); ERROR 1644 (45000): You cannot provide 0 value
Ainsi, dans le tableau ci-dessus, 0 valeur ne peut pas être insérée en raison de déclencheurs. Cependant, vous pouvez insérer d'autres valeurs.
Maintenant, insérons quelques enregistrements dans la table à l'aide de la commande insert -
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(-1000); Query OK, 1 row affected (0.41 sec)
Utilisez l'instruction select pour afficher tous les enregistrements de la table -
mysql> select *from DemoTable;
Cela produira le résultat suivant -
+-------+ | Value | +-------+ | 10 | | -1000 | +-------+ 2 rows in set (0.00 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!