修改mysql结束符 delimiter name
触发器语法:
create trigger 触发器名称
after/before 触发时间
insert/update/delete 监视事件
on 表明 监视地址
for each row
begin
N条sql语句
new 新数据
old 旧数据
end
分析
监视谁: tablename
监视动作: insert delete update
触发时间: after
触发事件:update
查看已有的triggers: show triggers
删除已有triggers : drop trigger name
例: create trigger t1
after
insert
on shop
for each row
begin
insert into city (name,count) values(new.dealer,new.article);
end$
mysql> show triggers\G$
*************************** 1. row ***************************
Trigger: t5
Event: INSERT
Table: ord
Statement: begin
declare
rnum int;
select num into rnum from goods where gid=new.gid;
if new.much > rnum then
set new.much = rnum;
end if;
update goods set num = num-new.much where gid = new.gid;
end
Timing: BEFORE
Created: NULL
sql_mode: NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: gbk
collation_connection: gbk_chinese_ci
Database Collation: latin1_swedish_ci
*************************** 2. row ***************************
Trigger: t4
Event: UPDATE
Table: ord
Statement: begin
update goods set num = num+old.much-new.much where gid=old.gid;
end
Timing: BEFORE
Created: NULL
sql_mode: NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: gbk
collation_connection: gbk_chinese_ci
Database Collation: latin1_swedish_ci
*************************** 3. row ***************************
Trigger: t3
Event: DELETE
Table: ord
Statement: begin
update goods set num = num+old.much where gid=old.gid;
end
Timing: AFTER
Created: NULL
sql_mode: NO_ENGINE_SUBSTITUTION
Definer: root@localhost
character_set_client: gbk
collation_connection: gbk_chinese_ci
Database Collation: latin1_swedish_ci
3 rows in set (0.01 sec)