当前位置:网站首页>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 ;
边栏推荐
- Appium foundation - use the first demo of appium
- API related to TCP connection
- Implement an iterative stack
- Matrixdb V4.5.0 was launched with a new mars2 storage engine!
- Liunx starts redis
- 884. Uncommon words in two sentences
- LeetCode 0108.将有序数组转换为二叉搜索树 - 数组中值为根,中值左右分别为左右子树
- QT判断界面当前点击的按钮和当前鼠标坐标
- 1041 Be Unique
- [rust notes] 16 input and output (Part 1)
猜你喜欢

1.14 - assembly line

Open source storage is so popular, why do we insist on self-development?

Implement an iterative stack

Groupbykey() and reducebykey() and combinebykey() in spark

可变电阻器概述——结构、工作和不同应用

Erreur de connexion Navicat à la base de données Oracle Ora - 28547 ou Ora - 03135

redis发布订阅命令行实现
![[practical skills] how to do a good job in technical training?](/img/a3/7a1564cd9eb564abfd716fef08a9e7.jpg)
[practical skills] how to do a good job in technical training?

leetcode-6111:螺旋矩阵 IV

Implement a fixed capacity stack
随机推荐
[rust notes] 16 input and output (Part 2)
多屏电脑截屏会把多屏连着截下来,而不是只截当前屏
一些工具的记录2022
Brief introduction to tcp/ip protocol stack
Introduction et expérience de wazuh open source host Security Solution
Appium automation test foundation - Summary of appium test environment construction
leetcode-22:括号生成
1.15 - 输入输出系统
Sqlmap tutorial (1)
[rust notes] 17 concurrent (Part 2)
Records of some tools 2022
[practical skills] technical management of managers with non-technical background
Leetcode-6110: number of incremental paths in the grid graph
WordPress switches the page, and the domain name changes back to the IP address
Collection: programming related websites and books
TypeScript 基础讲解
Groupbykey() and reducebykey() and combinebykey() in spark
Leetcode-3: Longest substring without repeated characters
Data visualization chart summary (II)
Daily question 1342 Number of operations to change the number to 0