Maison > base de données > tutoriel mysql > le corps du texte

DELIMITER // Quel rôle joue-t-il dans les triggers MySQL ?

WBOY
Libérer: 2023-08-26 10:41:07
avant
2301 Les gens l'ont consulté

DELIMITER // 在 MySQL 的触发器中起什么作用?

DELIMITER // peut être utilisé pour changer le point-virgule (;) d'une instruction en //. Vous pouvez désormais écrire plusieurs instructions en utilisant des points-virgules dans les déclencheurs.

Ceci est une démo du déclencheur. Dans cet exemple, chaque fois que vous entrez un EmployeeSalary inférieur à 1 000, il sera par défaut 10 000.

Tout d’abord, créons un tableau. La requête pour créer la table est la suivante -

mysql> create table EmployeeTable
-> (
-> EmployeeId int,
-> EmployeeName varchar(100),
-> EmployeeSalary float
-> );
Query OK, 0 rows affected (0.76 sec)
Copier après la connexion

Après avoir créé la table, vous devez créer un déclencheur sur la commande d'insertion. La requête pour créer le déclencheur est la suivante.

mysql> delimiter //
mysql> create trigger CheckSalary before insert on EmployeeTable
-> for each row if new.EmployeeSalary < 1000 then set
-> new.EmployeeSalary=10000;
-> end if;
-> //
Query OK, 0 rows affected (0.40 sec)
mysql> delimiter ;
Copier après la connexion

Vous pouvez maintenant utiliser la commande insert pour vérifier les déclencheurs. Si le EmployeeSalary inséré est inférieur à 1000, aucune erreur n'apparaîtra mais il stockera une valeur par défaut, que j'ai donnée est 10000.

La requête pour insérer des enregistrements est la suivante -

mysql> insert into EmployeeTable values(1,&#39;Carol&#39;,500);
Query OK, 1 row affected (0.25 sec)
Copier après la connexion

Utilisez maintenant l'instruction select pour vérifier tous les enregistrements de la table. La requête est la suivante.

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

Ce qui suit est le résultat.

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 1          | Carol        | 10000          |
+------------+--------------+----------------+
1 row in set (0.00 sec)
Copier après la connexion

Si vous entrez 1000 ou plus, seul votre numéro sera affiché. J'ai supprimé les enregistrements précédents de la table à l'aide de la commande truncate.

mysql> truncate table EmployeeTable;
Query OK, 0 rows affected (1.44 sec)
Copier après la connexion

Requête pour insérer des enregistrements dans la table.

mysql> insert into EmployeeTable values(2,&#39;Bob&#39;,1000);
Query OK, 1 row affected (0.14 sec)

mysql> insert into EmployeeTable values(3,&#39;Carol&#39;,2500);
Query OK, 1 row affected (0.19 sec)
Copier après la connexion

Il s'agit d'une requête qui utilise l'instruction select pour vérifier tous les enregistrements de la table.

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

Ce qui suit est le résultat.

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
| 2          | Bob          | 1000           |
| 3          | Carol        | 2500           |
+------------+--------------+----------------+
2 rows in set (0.00 sec)
Copier après la connexion

Regardez l'exemple de résultat ci-dessus, EmployeeSalary est supérieur ou égal à 1 000. Cela vous donnera votre salaire. N'oubliez pas que s'il est inférieur à 1 000, la valeur par défaut est définie sur 10 000.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!