- 浏览: 952235 次
文章分类
- 全部博客 (428)
- Hadoop (2)
- HBase (1)
- ELK (1)
- ActiveMQ (13)
- Kafka (5)
- Redis (14)
- Dubbo (1)
- Memcached (5)
- Netty (56)
- Mina (34)
- NIO (51)
- JUC (53)
- Spring (13)
- Mybatis (17)
- MySQL (21)
- JDBC (12)
- C3P0 (5)
- Tomcat (13)
- SLF4J-log4j (9)
- P6Spy (4)
- Quartz (12)
- Zabbix (7)
- JAVA (9)
- Linux (15)
- HTML (9)
- Lucene (0)
- JS (2)
- WebService (1)
- Maven (4)
- Oracle&MSSQL (14)
- iText (11)
- Development Tools (8)
- UTILS (4)
- LIFE (8)
最新评论
-
Donald_Draper:
Donald_Draper 写道刘落落cici 写道能给我发一 ...
DatagramChannelImpl 解析三(多播) -
Donald_Draper:
刘落落cici 写道能给我发一份这个类的源码吗Datagram ...
DatagramChannelImpl 解析三(多播) -
lyfyouyun:
请问楼主,执行消息发送的时候,报错:Transport sch ...
ActiveMQ连接工厂、连接详解 -
ezlhq:
关于 PollArrayWrapper 状态含义猜测:参考 S ...
WindowsSelectorImpl解析一(FdMap,PollArrayWrapper) -
flyfeifei66:
打算使用xmemcache作为memcache的客户端,由于x ...
Memcached分布式客户端(Xmemcached)
CHANGE MASTER:http://dev.mysql.com/doc/refman/5.5/en/change-master-to.html
Trigger Syntax and Examples:http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
NDB Cluster Replication: Multi-Master and Circular Replication:
http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-replication-multi-master.html
MySQL触发器Trigger实例篇:http://blog.csdn.net/hireboy/article/details/18079183
--log-slave-updates:http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#option_mysqld_log-slave-updates
Mysql主从配置:http://donald-draper.iteye.com/admin/blogs/2337407
LOCK TABLES and UNLOCK TABLES:https://dev.mysql.com/doc/refman/5.5/en/lock-tables.html
前面我们讲过mysql主从同步及串行同步,其实mysql还有一种变通的复制策略,利用触发器,
在一个表增加,更新,删除DML后,对另一个表或另一个库中的表进行相同的工作,今天我们就来测试一下触发器。
在测试之前,要新建两个数据库,一个为test,一个为log,
分别在test和log创建测试表结构test:
新建插入触发器:
插入数据:
在log数据库中查看对应的test表:
mysql> use log;
Database changed
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | donald |
| 2 | jamel |
+----+--------+
创建更新触发器:
更新test数据:
查询log数据库test表:
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | donald |
| 2 | rain |
+----+--------+
2 rows in set
创建删除触发器:
删除数据:
DELETE FROM test WHERE id = 2;
查询log数据库test表:
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | donald |
+----+--------+
1 row in set
总结:
从测试结果来看,触发器完成复制功能,关键是表中要有主键,利用mysql的同步策略和触发器,可以实现循环复制,及数据整合的功能。
Trigger Syntax and Examples:http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
NDB Cluster Replication: Multi-Master and Circular Replication:
http://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-replication-multi-master.html
MySQL触发器Trigger实例篇:http://blog.csdn.net/hireboy/article/details/18079183
--log-slave-updates:http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#option_mysqld_log-slave-updates
Mysql主从配置:http://donald-draper.iteye.com/admin/blogs/2337407
LOCK TABLES and UNLOCK TABLES:https://dev.mysql.com/doc/refman/5.5/en/lock-tables.html
前面我们讲过mysql主从同步及串行同步,其实mysql还有一种变通的复制策略,利用触发器,
在一个表增加,更新,删除DML后,对另一个表或另一个库中的表进行相同的工作,今天我们就来测试一下触发器。
在测试之前,要新建两个数据库,一个为test,一个为log,
分别在test和log创建测试表结构test:
/* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50041 Source Host : localhost:3306 Source Database : test Target Server Type : MYSQL Target Server Version : 50041 File Encoding : 65001 Date: 2016-11-24 18:16:59 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for test -- ---------------------------- DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
新建插入触发器:
DELIMITER $$ USE `test` $$ DROP TRIGGER IF EXISTS `test_insert` $$ CREATE TRIGGER `test_insert` AFTER INSERT ON `test` FOR EACH ROW BEGIN INSERT INTO `log`.`test` SET id = NEW.id, name=NEW.name; END;$$ DELIMITER;
插入数据:
INSERT INTO test VALUES (1,'donald'); INSERT INTO test VALUES (2,'jamel');
在log数据库中查看对应的test表:
mysql> use log;
Database changed
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | donald |
| 2 | jamel |
+----+--------+
创建更新触发器:
DELIMITER $$ USE `test`$$ DROP TRIGGER IF EXISTS `test_update` $$ CREATE TRIGGER `test_update` AFTER UPDATE ON `test` FOR EACH ROW BEGIN UPDATE `log`.`test` SET name=NEW.name WHERE id = OLD.id; END;$$ DELIMITER;
更新test数据:
update test set `name` = 'rain' where id =2;
查询log数据库test表:
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | donald |
| 2 | rain |
+----+--------+
2 rows in set
创建删除触发器:
DELIMITER $$ USE `test`$$ DROP TRIGGER IF EXISTS `test_delete` $$ CREATE TRIGGER `test_delete` AFTER DELETE ON `test` FOR EACH ROW BEGIN DELETE FROM `log`.`test` WHERE id = OLD.id; END;$$ DELIMITER;
删除数据:
DELETE FROM test WHERE id = 2;
查询log数据库test表:
mysql> select * from test;
+----+--------+
| id | name |
+----+--------+
| 1 | donald |
+----+--------+
1 row in set
总结:
从测试结果来看,触发器完成复制功能,关键是表中要有主键,利用mysql的同步策略和触发器,可以实现循环复制,及数据整合的功能。
发表评论
-
Deadlock found when trying to get lock; try restarting transaction解决方式
2017-07-18 23:00 1964MySQL 事务的学习整理:http://blog.csdn. ... -
MySQL慢日志
2017-05-18 16:05 993The Slow Query Log:https://dev. ... -
The table is full问题解决过程
2017-05-06 15:29 7272The table‘xxxx’is full 设置临时表大小 ... -
百万级数据-程序迁移后续
2017-04-13 18:09 1584百万级数据-程序迁移:http://donald-draper ... -
Msyql日期字符串转换
2017-04-01 14:13 497Date和String的互相转换:http://www.tui ... -
Mysql添加约束
2017-03-31 16:28 858MySQL中对三种约束的支持:http://leekai.me ... -
Mysql FEDERATED引擎
2016-11-29 15:51 568使用mysql federated引擎构建MySQL分布式数据 ... -
Mysql主从配置
2016-11-11 18:31 4841、主从服务器分别作以下操作: 1)版本一致 2)初始 ... -
百万级数据-程序迁移
2016-09-29 19:03 2570JVM学习笔记:http://blog.csdn.net/cu ... -
Mysql 备份工具XtraBackup增量备份
2016-08-05 18:11 683安装:http://donald-draper.iteye.c ... -
Mysql 备份工具XtraBackup全量备份
2016-08-05 16:41 521Percona安装:http://donald-draper. ... -
Mysql 备份工具XtraBackup 安装
2016-08-05 16:28 903开源热备工具XtraBackup下载:https://www. ... -
sysbench基准测试
2016-08-01 17:45 722下载sysbench:http://dev.mysql.com ... -
mysql 事务处理
2016-07-29 16:07 478创建表: CREATE TABLE `role` ( ` ... -
mysql 全文索引
2016-07-28 11:03 574mysql大表查询的时候,'String%'模糊查询可以使用B ... -
MySQL 物理文件的迁移
2016-07-26 15:39 2280参考资料:http://www.cnblogs.com/adv ... -
centos7 安装mysql
2016-07-26 11:36 707下载MYSQL-RPM包:http://downloads.m ... -
mysql 大表添加索引注意事项
2016-07-25 16:01 2583LINXU top命令: http://www.c ... -
mysql 大表分页查询测试分析优化
2016-07-25 11:30 1463索引概念: http://blog.csdn.net/xlur ... -
MySQL事务
2016-06-01 10:49 575事务基础知识:http://my.oschina.net/je ...
相关推荐
mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql...
mysql触发器+存储过程
MySQL触发器教程
MYSQL触发器,可以使用它用来进行监控,例如商品价格变化,下单后商品库存减少等实用性操作!
MYSQL触发器在PHP项目中用来做信息备份、恢复和清空 MYSQL触发器在PHP项目中用来做信息备份、恢复和清空
我们已经去掉了关于触发器的错误的语句,但是仍旧有很多旧版本的手册在网上,举个例子,这是一个德国的Url上的: http://dev.mysql.com/doc/mysql/de/ANSI_diff_Triggers.html. 这个手册上说触发器就是存储过程,...
MySQL触发器
MySQL触发器说明和编写时的注意事项,其功能越来越强,可以学习
mysql触发器教程
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
本文实例讲述了mysql触发器之创建使用触发器。分享给大家供大家参考,具体如下: 我们可以可以使用CREATE TRIGGER语句创建一个新的触发器,来看下具体的语法: CREATE TRIGGER trigger_name trigger_time trigger_...
主要介绍了mysql触发器之触发器的增删改查操作,结合实例形式分析了mysql触发器的定义及使用触发器进行增删改查等相关操作技巧,需要的朋友可以参考下
MySQL触发器、存储过程、自定义函数、视图简单示例
Mysql触发器的例子,包括,创建,删除,修改,三种触发器的实例
mysql触发器使用实例 看下例子基本上就会操作了!
mysql触发器.pdf
MySQL触发器的使用说明,利用函数每秒触发一次...............................................................