---恢复内容开始---
Mysql触发器
定义:
当一个表中有insert update delete事件发生,触发一个事件,执行一段代码。
作用:
同步数据
创建:
1 create trigger 名称 触发时机 事件 on 表名 for each row 2 begin 3 语句; 4 end//
删除和查看:
1 drop trigger 触发器的名称 2 show create trigger 触发器名称 3 show triggers
案例:
1 create table newsn( 2 nid int key auto_increment, 3 title varchar(50), 4 pubtime int 5 ) 6 create table zong( 7 id int not null, 8 type tinyint(1), 9 title varchar(50) 10 )//
--在 文章表 的insert事件上创建一个触发器:
1 create trigger newsn_insert after insert on newsn for each row 2 begin 3 insert into zong(id,type,title) value(new.nid,1,new.title); 4 end//
--在 文章表 的delete事件上创建一个触发器:
1 create trigger newsn_delete after delete on newsn for each row 2 begin 3 delete from zong where id=old.nid and type=1; 4 end//
--在 文章表 的update事件上创建一个触发器:
1 create trigger newsn_update after update on newsn for each row 2 begin 3 update zong set title=new.title where id=old.nid and type=1; 4 end//
需求:
查询文章的标题及产品的标题包含某个关键字的所有记录,根据时间倒序。
1 select * from (select nid as id,1 as type,pubtime from newsn where title like '%宝强%' 2 union 3 select pid as id,2 as type,pubtime from productn where title like '%宝强%') as linshibiao order by pubtime asc//
说明:
union 用于合并两个或多个select语句的结果集,并消除表中重复行;
要求两次查询的列数必须一致,如果列名称不同将采用第一张表的列名称。
---恢复内容结束---