mysql触发器

1、创建简单的触发器tt1
表t1和表t2结构相同如下

创建触发器tt1,该触发器在t1新增一条数据前需将新数据插入t2中,具体语句如下

create trigger tt1 before insert on t1 for each row
begin insert into
t2(name)
value
(new.name);----此处new.name为t1新插入的name
end

2、创建简单的触发器tt2
创建触发器tt2,当表alarm插入一条数据后执行更新语句“UPDATE alarm set
customerno = ‘12’ where id = ‘37638’”,具体语句如下

create trigger tt2 after insert on alarm for each row
----这里触发器tt2后面用before,是after表示触发事件之后
begin UPDATE alarm set
customerno = ‘12’ where id = ‘37638’;
end

3、创建简单的触发器tt3
创建触发器tt3,当表alarm插入一条数据前改变插入列customerno的值为插入eventid的截取值,具体语句如下

create trigger tt3 before insert on alarm for each row
begin
set new.customerno = substring_index(substring_index(new.eventid,‘-’,2),‘-’,-1);
----substring_index方法用来从字符串(这里指eventid)中截取值,截取字符这里选的是’-',第三个参数表示截取数位。
----以上substring_index套用两次,表示两次截取,可自己试着跑一下就知道了
end

4、创建简单的触发器tt4
创建触发器tt4,alarm插入一条数据前,改变插入列customerno的值为查询值a.cuno,具体语句如下

create trigger tt4 before insert on alarm for each row
begin
set new.customerno = select a.cuno from (
select CONCAT(customerno,address) as cuno from customer where customerno =
substring_index(substring_index(new.eventid,‘-’,2),‘-’,-1) LIMIT 1)
a
-----这里用到了limit,需要在套一层select取值,不然会报错
);
end
-----以上CONCAT(customerno,address)是合并列customerno和address的值得到cuno列

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值