mysql 触发器

参考

触发器涉及触发表自身的操作时,用before,要删去update 表名

set new.status=1;
update test set status=1 where sno=new.sno;

delimiter $$
create trigger setstatus before update on test for each row
begin
if new.math<60 or new.chinese<60 then
	set new.status=1;
else
	set new.status=0;
end if;
end$$
delimiter ;

在一个表(User_Info_2017)上放置一个触发器,当对它进行insert,update,delete的操作时,触发器(UserToTemp)启动,把相应的变动数据根据需要放到另外一个表(User_Info_2017_temp)中

create or replace trigger UserToTemp after insert or update or delete
on User_Info_2017 for each row
declare
    integrity_error exception;
    errno            integer;
    errmsg           char(200);
    dummy            integer;
    found            boolean;
 
begin
if inserting then
    insert into User_Info_2017_temp(ID,UserName,PassWord,CreateDate,Status) values(:NEW.ID,:NEW.UserName,:NEW.PassWord,:new.CreateDate,:NEW.Status);
elsif updating then
    update User_Info_2017_temp set ID=:NEW.ID,UserName=:NEW.UserName,PassWord=:NEW.PassWord,Status=:NEW.Status where id=:OLD.id;
elsif deleting then
    delete from User_Info_2017_temp where id=:OLD.id;
end if;
exception
    when integrity_error then
       raise_application_error(errno, errmsg);
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值