8Python全栈之路系列之MySQL触发器
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,Python全栈之路系列之MySQL触发器l对某个表进行增/删/改操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行增/删/改前后的行为。创建触发器基本语法插入前C
千家信息网最后更新 2024年12月12日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安全错误
数据库的锁怎样保障安全
数据库数据宏
上海如创网络技术公司
服务器的管理工具在哪
nsx网络安全措施
山大网络安全专业考研
梦幻西游天龙服务器
民航网络安全研讨会
哪里检索气象数据库
工资管理oa软件开发公司
滨州网络技术培训班
公司网络安全工作计划实施方案
数据库挖掘概念与技术英文版
广东省浩如海网络技术有限
安卓软件开发哪里好
石油大学网络技术中心
网络技术基础有哪些内容
司法局网络安全宣传标语
广州微商软件开发咨询
服务器时间设置时区
网络安全1.0发布时间
航信A6数据库默认密码
数据库开始时间结束时间
vb 下拉菜单查询数据库
军队文职面试网络安全
如何导出网页的表格数据库
网络安全结尾稿
锡山大华智能服务器维修
网络安全分论坛主题
从真实案例网络安全陷阱
司法局网络安全宣传标语