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列