MySQL用触发器同步两张表
2015-06-03 15:18
429 查看
在MySQL环境下面,建立相关触发器,在两个表之间相关sql,希望能帮到大家
1.建person表
建person_ex
2.实现的目标当person新增一条记录,更新一条记录或者删除一条记录,person_ex中sex字段为M的记录跟着改变
sql代码如下:
创建插入触发器
创建更新触发器:
创建删除触发器:
3.测试SQL代码:
1.建person表
CREATE TABLE `person` ( `id` int(11) DEFAULT NULL, `name` varchar(256) DEFAULT NULL, `sex` char(16) DEFAULT NULL )
建person_ex
CREATE TABLE `person_ex` ( `id` int(11) DEFAULT NULL, `name` varchar(256) DEFAULT NULL, `sex` char(16) DEFAULT NULL )
2.实现的目标当person新增一条记录,更新一条记录或者删除一条记录,person_ex中sex字段为M的记录跟着改变
sql代码如下:
创建插入触发器
create trigger person_trigger AFTER insert on person for each row begin set @x = "hello trigger"; IF new.sex = 'M' THEN INSERT INTO person_ex(id,name,sex) VALUES (New.id,new.`name`,new.sex); END IF; end;
创建更新触发器:
create trigger person_trigger_update AFTER UPDATE on person for each row begin set @x = "trigger UPDATE"; IF new.sex = 'M' THEN DELETE from person_ex where person_ex.id = new.id; INSERT into person_ex SELECT * from person where person.id = new.id; END IF; end;
创建删除触发器:
create trigger person_trigger_delete AFTER DELETE on person for each row begin set @x = "trigger DELETE"; DELETE FROM person_ex where person_ex.id = old.id; end;
3.测试SQL代码:
INSERT into person (id,name,sex) VALUES (1,'chigo','M')
INSERT into person (id,name,sex) VALUES (2,'Tony','F')
update person set name = 'vara' , sex = 'F' where id = 1
update person set name = 'Tony' , sex = 'M' where id = 1
update person set name = 'vara' , sex = 'M' where id = 1
DELETE from person where id = 1 INSERT into person_ex SELECT * from person where person.id = 1 update person set name = 'vara' , sex = 'F' where id = 1
相关文章推荐
- MSSQL与MYSQL手工注入时的简单对比
- 一点mysql注入时用到的函数
- mysql :select 添加一列固定值
- PostgreSQL和MySQL like区别
- 关于mysql的metadata lock
- MySQL慢查询优化
- Mysql数据库优化总结
- C#调用MySQL数据库
- 深入Mysql字符集设置
- Mysql事务,并发问题,锁机制
- MySQL数据恢复--binlog
- JDBC数据库常用操作(mysql)
- MYSQL Error2003错误解决方案
- mysql存储过程循环语句简单例子
- mysql 互为主从复制常见问题
- MySQL 常用语法总结
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
- MySQL单列索引和联合索引
- MySQL索引之前缀索引和索引选择性
- mac中遇到的mysql编码问题