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

Empêcher les valeurs nulles dans les champs MySQL ?

PHPz
PHPzavant
2023-09-02 17:57:071412parcourir

防止 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer