8Python全栈之路系列之MySQL触发器
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Python全栈之路系列之MySQL触发器l对某个表进行增/删/改操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行增/删/改前后的行为。创建触发器基本语法插入前C
千家信息网最后更新 2026年11月01日8Python全栈之路系列之MySQL触发器
Python全栈之路系列之MySQL触发器
l
对某个表进行增/删/改操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行增/删/改前后的行为。
创建触发器基本语法
插入前
CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROWBEGIN ...END
插入后
CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROWBEGIN ...END
删除前
CREATE TRIGGER tri_before_delete_tb1 BEFORE DELETE ON tb1 FOR EACH ROWBEGIN ...END
删除后
CREATE TRIGGER tri_after_delete_tb1 AFTER DELETE ON tb1 FOR EACH ROWBEGIN ...END
更新前
CREATE TRIGGER tri_before_update_tb1 BEFORE UPDATE ON tb1 FOR EACH ROWBEGIN ...END
更新后
CREATE TRIGGER tri_after_update_tb1 AFTER UPDATE ON tb1 FOR EACH ROWBEGIN ...END
触发器实例
创建一个user_info表和user_info_back表,里面有UID,Name,Password,E-mil列;
CREATE TABLE `user_info` ( `UID` int(5) NOT NULL AUTO_INCREMENT, `Name` char(15) NOT NULL, `Password` varchar(32) DEFAULT NULL, `Email` varchar(255) DEFAULT NULL, PRIMARY KEY (`UID`,`Name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `user_info_back` ( `UID` int(5) NOT NULL AUTO_INCREMENT, `Name` char(15) NOT NULL, `Password` varchar(32) DEFAULT NULL, `Email` varchar(255) DEFAULT NULL, PRIMARY KEY (`UID`,`Name`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
创建一个插入前的触发器
触发器的作用就是在往user_info表中插入数据之前进入tri_before_insert_tb1触发器,执行里面的操作
delimiter %CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON user_info FOR EACH ROWBEGIN-- 如果插入时的Name="as"IF NEW.Name = "ansheng" THEN -- 那么就把这条数据先插入user_info_back表中,数据相同 INSERT INTO user_info_back(Name,Password,Email) VALUES(NEW.Name,NEW.Password,NEW.Email);END IF;END%delimiter ;
使用触发器
触发器无法由用户直接调用,而知由于对表的增/删/改操作被动引发的。
往user_info表中插入两条数据
INSERT INTO user_info(Name,Password,Email) VALUES("ansheng","ansheng","ansheng@ansheng.me"),("root","r","root@ansheng.me");查看表中的数据
mysql> select * from user_info;+-----+---------+----------+--------------------+| UID | Name | Password | Email |+-----+---------+----------+--------------------+| 1 | ansheng | ansheng | ansheng@ansheng.me || 2 | root | r | root@ansheng.me |+-----+---------+----------+--------------------+2 rows in set (0.00 sec)mysql> select * from user_info_back;+-----+---------+----------+--------------------+| UID | Name | Password | Email |+-----+---------+----------+--------------------+| 1 | ansheng | ansheng | ansheng@ansheng.me |+-----+---------+----------+--------------------+1 row in set (0.00 sec)
删除触发器
DROP TRIGGER tri_after_insert_tb1;
NEW表示即将插入的数据行,OLD表示即将删除的数据行,对于INSERT语句,只有NEW是合法的,对于DELETE语句,只有OLD才合法,而UPDATE语句可以在和NEW以及OLD同时使用
#Python全栈之路
触发器
数据
语句
之路
合法
只有
用户
行为
更新
相同
作用
同时
实例
就是
语法
面的
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
美国互联网保险保险科技
致骋互联网科技
贷财互联网科技
极限挑战互联网科技
天下捷融互联网科技
互联网科技有限公司 翻译
新华互联网科技校企合作
滨湖区互联网智能科技产品供应
互联网科技创新企业排名
互联网科技公司的市场部门
阿大互联网科技有限公司
互联网公司黑科技创始人
中科明德北京互联网科技
互联网第三次科技革命特征
富国互联网科技002692
宇信科技在杭州互联网排第几
广州燕处互联网科技有限公司
互联网科技机房
互联网科技创新创业项目
中关村互联网科技集团
深圳科技互联网
广州互联网科技公司
金融科技 互联网金融
猫创互联网科技
中国最先进互联网科技公司
科技与互联网哪个更好
互联网经济与金融科技
港股科技和互联网
区块链结合互联网科技