MySQL·的·触发器

本文介绍了MySQL触发器的基本概念及其在数据准备和操作中的应用,包括afterinsert和beforeupdate类型的触发器实例,展示了如何在用户表操作后自动记录日志,确保数据一致性。
摘要由CSDN通过智能技术生成

MySQL·的·触发器:

MySQL的触发器的内容有很多的应用场景,我们可以通过这篇博客来对MySQL的触发器进行一个简单的了解。

关于mysqld的触发器

我们需要了解MySQL本来是要用来干什么的!!!可以协助应用在数据库端确保数据的完整性,日志记录,数据校验。


1.数据准备:

-- 数据准备
create database if not exists mydb9_trigger;
use mydb9_trigger;
-- 用户表
create table user(
uid int primary key,
username varchar(50) not null,
password varchar(50) not null
);
-- 用户信息操作日志表
create table uesr_logs(
 id int primary key auto_increment,
 time timestamp,
 log_test varchar(255)
);

2.关键字:

trigger是触发器的关键字。

3.样例:

需求一:当user表添加数据,uesr_logs自动添加日志记录
定义触发器
代码如下:

create trigger trigger_test1 after insert
on user for each row
insert into uesr_logs values(null,now(),'有新用户添加');

-- 在user表中添加数据
insert into user values(1,'张三','123456');  

这个after代表了是在表格中提交数据之后,才会提交到日志中。

需求二:
当user表被修改,自动记录日志。

delimiter$$
create trigger trigger_test2 before update 
on user for each row
begin 
 insert into uesr_logs values(null,now(),'有用户信息被修改');
end $$
delimiter ;
-- 修改数据
update user set password ='888888' where uid =1;

这个before的意思是在修改数据前就会将信息记录在日志中。

3.触发器的关键字:

insert类型的触发器:

create trigger trigger_test3 after insert
on user for each row
insert into uesr_logs values(null,now(),concat_ws('有新用户添加,信息为:',new.uid,new.username,new.password));
insert into user values(2,'轩轩','123456');  

update类型的触发器

create trigger trigger_test4 after update
on user for each row
insert into uesr_logs values(null,now(),concat_ws('有用户信息修改,信息为:',old.uid,old.username,old.password));
update user set password='999999'where uid =2; 

特别注意

Delect 类型的只有old类型 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值