Maison > base de données > tutoriel mysql > Empêcher les valeurs nulles dans les champs MySQL ?

Empêcher les valeurs nulles dans les champs MySQL ?

PHPz
Libérer: 2023-09-02 17:57:07
avant
1486 Les gens l'ont consulté

防止 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)
Copier après la connexion

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 ;
Copier après la connexion

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
Copier après la connexion

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)
Copier après la connexion

Utilisez l'instruction select pour afficher tous les enregistrements de la table -

mysql> select *from DemoTable;
Copier après la connexion

Cela produira le résultat suivant -

+-------+
| Value |
+-------+
| 10    |
| -1000 |
+-------+
2 rows in set (0.00 sec)
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal