Mysql触发器

本文详细介绍了MySQL中触发器的使用,包括同表触发器的创建(用于在插入和更新行时自动计算总和)和多表触发器的创建(在更新一个表后自动更新另一个表的数据)。示例代码清晰地展示了如何定义和使用触发器来维护数据的一致性和完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接:http://aiezu.com/article/mysql_trigger_syntax.html

一、同表
– 创建触发器(添加行)
DELIMITER $
drop trigger if exists hr_social_salary_detail_insert$
create trigger hr_social_salary_detail_insert
before insert on hr_social_salary_detail
for each row
begin
set new.all_total = new.large_medical_amount_total+new.basic_medical_amount_total+new.social_security_amount_total;
end$
DELIMITER ;

– 创建触发器(更新行)
DELIMITER $
drop trigger if exists hr_social_salary_detail_update$
create trigger hr_social_salary_detail_update
before update on hr_social_salary_detail
for each row
begin
set new.all_total = new.large_medical_amount_total+new.basic_medical_amount_total+new.social_security_amount_total;
end$
DELIMITER ;

二、多表
– 触发器(不同表)
– 创建测试表和插入测试数据
drop table if exists tmp2;
drop table if exists tmp3;
create table tmp2 (id int, name varchar(128)) default charset=‘utf8’;
create table tmp3 (fid int, name varchar(128)) default charset=‘utf8’;
insert into tmp2 values(1, ‘爱E族’);
insert into tmp3 values(1, ‘爱E族’);

– 创建触发器
DELIMITER $
drop trigger if exists tmp2_update$
create trigger tmp2_update
after update on tmp2
for each row
begin
update tmp3 set name=new.name where fid=new.id;
end$
DELIMITER ;

update tmp2 set name=‘aiezu11’ WHERE id=2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值