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

Explication détaillée des déclencheurs dans le résumé d'apprentissage MySQL

WBOY
Libérer: 2022-03-14 17:19:24
avant
2511 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur mysql, qui présente principalement des problèmes liés aux déclencheurs. Les déclencheurs sont une procédure stockée spéciale. Les déclencheurs et les procédures stockées sont tous deux capables de fonctions et de stockage spécifiques complets, j'espère que cela sera utile à tout le monde.

Explication détaillée des déclencheurs dans le résumé d'apprentissage MySQL

Apprentissage recommandé : Tutoriel MySQL

Triggers

1 Introduction aux déclencheurs

Un déclencheur est une procédure stockée spéciale. Un déclencheur, comme une procédure stockée, est un segment SQL qui peut remplir une fonction spécifique et est stocké sur le serveur de base de données. Cependant, le déclencheur n'a pas besoin d'être appelé lors de l'exécution d'opérations DML sur les données de la table de données. l'exécution de ce segment SQL, pas besoin de l'appeler manuellement.

Dans MySQL, seule l'opération insertdeleteupdate peut déclencher l'exécution du déclencheur.

2. Utilisation du déclencheur

1. Créer un déclencheur
create trigger tri_name   -- tri_name:触发器别名
<before|after> 						-- 定义触发时机
<insert|delete|update>		-- 定义DML类型
ON <table_name>						-- 要触发的表
for each <row|statement>							
-- for each row 声明为⾏级触发器(操作的每⼀条记录就触发触发器执⾏⼀次)
-- for each statement 声明语句级触发器(触发动作体执行一次)
begin											-- 当只有一句sql语句时,begin...end 可以省略	
	sql_statement 					-- 进行触发器对应的DML类型的操作
end;


#示例
-- 创建触发器:当学⽣信息表发⽣添加操作时,则向⽇志信息表中记录⼀条⽇志
create trigger tri_test1
after insert on students
for each row
insert into stulogs(time,log_text) values(now(), concat('添 加',NEW.stu_num,'学⽣信息'));
Copier après la connexion
2. Afficher le déclencheur

#查看全部触发器
show triggers;

#查看触发器的创建语句
show create trigger 触发器名字;
Copier après la connexion

3. Supprimer le déclencheur

Les déclencheurs ne peuvent pas être modifiés, seulement supprimés

drop trigger  触发器名字;
Copier après la connexion

Trois, NOUVEAU et ANCIEN.

les déclencheurs sont utilisés pour surveiller les opérations d'insertion, de suppression et de mise à jour sur les données dans la table de données. Les déclencheurs gèrent généralement certaines opérations liées au DML ; nous pouvons utiliser les mots-clés NEW et OLD pour obtenir les données de l'opération DML qui déclenche ce déclencheur.

dans le déclencheur

NOUVEAU : Dans le déclencheur⽤ Utilisé pour récupérer les données ajoutées par l'opération d'insertion et l'enregistrement modifié par l'opération de mise à jour

ANCIEN : Dans le déclencheur⽤ Pour obtenir les données avant suppression par opération de suppression et données avant modification par opération de mise à jour

    1. Utilisation de NEW
  • #insert操作中:NEW表示添加的新记录
    create trigger tri_test1
    after insert on students
    for each row
    insert into stulogs(time,log_text) values(now(), concat('添 加',NEW.stu_num,'学⽣信息'));
    
    
    #update操作中:NEW 表示修改后的数据
    -- 创建触发器 : 在监听update操作的触发器中,可以使⽤NEW获取修改后的数据
    create trigger tri_test2
    after update on students for each row
    insert into stulogs(time,log_text) values(now(), concat('修改学⽣信息
    为:',NEW.stu_num,NEW.stu_name));
    Copier après la connexion
  • 2 Utilisation de OLD
  • #delete操作中:OLD表示删除的记录
    create trigger tri_test3
    after delete on students for each row
    insert into stulogs(time,log_text) values(now(), concat('删 除',OLD.stu_num,'学⽣信息')); 
    
    
    #update操作中:OLD表示修改前的记录
    create trigger tri_test2
    after update on students for each row
    insert into stulogs(time,log_text) values(now(), concat('将学⽣姓名从
    【',OLD.stu_name,'】修改为【',NEW.stu_name,'】'));
    Copier après la connexion
4. 10.4 Résumé de l'utilisation des déclencheurs

1. l'opération DML correspondante est effectuée sur la table liée au déclencheur ;

Les déclencheurs peuvent implémenter des opérations en cascade (opérations d'association) des données dans la table, notamment Il est utile de garantir l'intégrité des données Les déclencheurs peuvent effectuer une vérification de légalité plus complexe ; sur les données d'opération DML

2. Inconvénients
  • Rendre difficile la localisation des problèmes dans la logique métier implémentée par les déclencheurs , la maintenance ultérieure est difficile
  • L'utilisation d'un grand nombre de déclencheurs peut facilement conduire à une structure de code désordonnée et augmenter ; la complexité du programme ;
  • Lorsque la quantité de données exploitées par le déclencheur est relativement importante, l'efficacité d'exécution sera considérablement réduite.

3. Suggestions d'utilisation
  • Dans les projets Internet, l'adaptation des déclencheurs doit être évitée ;
  • Pour les projets avec une faible concurrence, vous pouvez choisir d'utiliser des procédures stockées, mais leur utilisation n'est pas recommandée dans les références Internet ; (Raison : lors du stockage des procédures, la logique de mise en œuvre métier est transmise à la base de données pour traitement, ce qui augmente ou diminue la charge de la base de données et n'est pas propice à la migration de la base de données)
  • Apprentissage recommandé :
  • Tutoriel d'apprentissage mysql

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!

Étiquettes associées:
source:csdn.net
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