当前位置:网站首页>MySQL advanced part 1: triggers
MySQL advanced part 1: triggers
2022-07-05 06:13:00 【Dawnlighttt】
List of articles
Trigger introduction
Triggers are database objects related to tables , Referring to insert/update/delete Before or after , Trigger and execute the... Defined in the trigger SQL Statement set . This feature of triggers can assist in application on the database side Ensure data integrity , logging , data verification Wait for the operation .
Use the alias OLD and NEW To refer to the changed record content in the trigger , This is similar to other databases . Now triggers only support row level triggering , Statement level triggering is not supported .(Oracle Existing row level triggers , There are also statement level triggers )
Trigger Type | NEW and OLD Use |
---|---|
INSERT Type trigger | NEW Indicates the data to be added or added |
UPDATE Type trigger | OLD Represents the data before modification , NEW Represents the data that will be or has been modified |
DELETE Type trigger | OLD Data that will be or has been deleted |
Create trigger
Grammatical structure :
create trigger trigger_name
before/after insert/update/delete
on tbl_name
[ for each row ] -- Line level triggers
begin
trigger_stmt ;
end;
Example
demand
Record by trigger emp Data change log for table , Including the addition of , modify , Delete ;
First, create a log table :
create table emp_logs(
id int(11) not null auto_increment,
operation varchar(20) not null comment ' Operation type , insert/update/delete',
operate_time datetime not null comment ' Operating time ',
operate_id int(11) not null comment ' Operation table ID',
operate_params varchar(500) comment ' Operating parameters ',
primary key(`id`)
)engine=innodb default charset=utf8;
establish insert Type trigger , Complete logging when inserting data :
DELIMITER $
create trigger emp_logs_insert_trigger
after insert
on emp
for each row
begin
insert into emp_logs (id,operation,operate_time,operate_id,operate_params) values(null,'insert',now(),new.id,concat(' After inserting (id:',new.id,', name:',new.name,', age:',new.age,', salary:',new.salary,')'));
end $
DELIMITER ;
establish update Type trigger , Complete logging when updating data :
DELIMITER $
create trigger emp_logs_update_trigger
after update
on emp
for each row
begin
insert into emp_logs (id,operation,operate_time,operate_id,operate_params) values(null,'update',now(),new.id,concat(' Before the change (id:',old.id,', name:',old.name,', age:',old.age,', salary:',old.salary,') , After modification (id',new.id, 'name:',new.name,', age:',new.age,', salary:',new.salary,')'));
end $
DELIMITER ;
establish delete Triggers for rows , Complete logging when deleting data :
DELIMITER $
create trigger emp_logs_delete_trigger
after delete
on emp
for each row
begin
insert into emp_logs (id,operation,operate_time,operate_id,operate_params) values(null,'delete',now(),old.id,concat(' Before deleting (id:',old.id,', name:',old.name,', age:',old.age,', salary:',old.salary,')'));
end $
DELIMITER ;
test :
insert into emp(id,name,age,salary) values(null, ' The left emissary of light ',30,3500);
insert into emp(id,name,age,salary) values(null, ' Bright right emissary ',33,3200);
update emp set age = 39 where id = 3;
delete from emp where id = 5;
Delete trigger
Grammatical structure :
drop trigger [schema_name.]trigger_name
If not specified schema_name, The default is the current database .
Check triggers
Can be executed by SHOW TRIGGERS Command to view the status of the trigger 、 Grammar and other information .
Grammatical structure :
show triggers ;
边栏推荐
- Sword finger offer II 058: schedule
- 【Rust 笔记】17-并发(下)
- Scope of inline symbol
- 1.13 - RISC/CISC
- Leetcode-22: bracket generation
- Liunx starts redis
- leetcode-6108:解密消息
- Groupbykey() and reducebykey() and combinebykey() in spark
- “磐云杯”中职网络安全技能大赛A模块新题
- On the characteristics of technology entrepreneurs from Dijkstra's Turing Award speech
猜你喜欢
6. Logistic model
The connection and solution between the shortest Hamilton path and the traveling salesman problem
Solution to game 10 of the personal field
Wazuh開源主機安全解决方案的簡介與使用體驗
Matrixdb V4.5.0 was launched with a new mars2 storage engine!
Implement an iterative stack
redis发布订阅命令行实现
可变电阻器概述——结构、工作和不同应用
Redis publish subscribe command line implementation
liunx启动redis
随机推荐
Introduction to LVS [unfinished (semi-finished products)]
Groupbykey() and reducebykey() and combinebykey() in spark
LeetCode 1200.最小绝对差
Real time clock (RTC)
Transform optimization problems into decision-making problems
1.14 - assembly line
Records of some tools 2022
Open source storage is so popular, why do we insist on self-development?
LaMDA 不可能觉醒吗?
Appium foundation - use the first demo of appium
Bit mask of bit operation
How to adjust bugs in general projects ----- take you through the whole process by hand
Daily question 2013 Detect square
The connection and solution between the shortest Hamilton path and the traveling salesman problem
liunx启动redis
Simply sort out the types of sockets
leetcode-31:下一个排列
LVS简介【暂未完成(半成品)】
Règlement sur la sécurité des réseaux dans les écoles professionnelles secondaires du concours de compétences des écoles professionnelles de la province de Guizhou en 2022
Leetcode-6109: number of people who know secrets