发布时间:2024-08-19 11:01
有一些表是互相关联的,比如说商品表和库存表,我们对商品表的数据进行操作,那么对应的库存表还得发生变化,这样才可以保证数据的完整。如果我们是自己手动维护的话,比较麻烦。
这个时候我们可以使用触发器,创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作等,这样我们就不需要担心因为忘记添加库存数据而导致数据丢失了。
触发器是作用在表上的,比如说我们希望表A新增一条记录的时候就触发 触发器的执行,而且还要选择触发器是在insert语句执行之前执行触发器还是之后。
CREATE TRIGGER 触发器名称
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名
FOR EACH ROW
触发器执行的语句块;
说明:
表名
:表示触发器监控的对象。
BEFORE|AFTER
:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。
INSERT|UPDATE|DELETE
:表示触发的事件。
触发器执行的语句块
:可以是单条SQL语句,也可以是由BEGIN…END结构组成的复合语句块。
先准备表
CREATE TABLE test_trigger (
id INT PRIMARY KEY AUTO_INCREMENT,
t_note VARCHAR(30)
);
CREATE TABLE test_trigger_log (
id INT PRIMARY KEY AUTO_INCREMENT,
t_log VARCHAR(30)
);
要求:创建触发器:创建名称为before_insert的触发器,向test_trigger数据表插入数据之前,向test_trigger_log数据表中插入before_insert的日志信息。
show triggers\\G 注意,在SQLyog中,不能加上\\G
show create trigger 触发器名
SELECT * FROM information_schema.TRIGGERS;
触发器也是数据库对象,触发器也是用drop语句来删除
drop trigger if exists 触发器名;
ConfigurationClassPostProcessor自动装配流程图解
7-1前后分离(使用AJAX加载 CSS、JS、HTML、XML)
ECCV 2022最新研究成果:全球首个text-sketch-image数据集FS-COCO
SpringBoot+Vue 前后端分离项目:婚庆管理系统(毕设项目)
小满Vue3第三十九章(Vue开发桌面程序Electron)
从傅里叶级数(Fourier series)到离散傅里叶变换(Discrete Fourier transform)
vue/react使用JSDoc、jsconfig.json 完成vscode对于webpack的alias引入的js方法的提示