8Python全栈之路系列之MySQL触发器
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,Python全栈之路系列之MySQL触发器l对某个表进行增/删/改操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行增/删/改前后的行为。创建触发器基本语法插入前C
千家信息网最后更新 2025年01月21日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安全错误
数据库的锁怎样保障安全
关于春节期间网络安全保障的通知
国家农作物种质资源数据库系统
质量追溯软件开发
网络安全文档免费下载
返乡大学生网络安全责任书
代理服务器寻找
房产租赁数据库管理设计
中国的网络技术厉害吗
字节跳动to b服务器
安全卫士服务器版
网络安全活动启动仪式发言稿
上海信息化软件开发设施检测中心
网络安全可以写什么
互联网公司服务器工作
Oracle数据库压缩率
路由器 代理服务器
金属服务器建设结果
服务器存储工作邮件不超过多少周
服务器 照片管理软件
整车电控软件开发
潜力的mysql数据库安装
移动代理服务器可以当电脑用吗
网络安全法未成年人措施
东乡租房软件开发
原神深渊螺旋数据库
geo数据库的芯片数据
良和互联网科技有限公司
国防网络安全图片
计算机网络技术移动通信
c语言软件开发系统