- 浏览: 984185 次
文章分类
- 全部博客 (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 2072MySQL 事务的学习整理:http://blog.csdn. ... -
MySQL慢日志
2017-05-18 16:05 1034The Slow Query Log:https://dev. ... -
The table is full问题解决过程
2017-05-06 15:29 7641The table‘xxxx’is full 设置临时表大小 ... -
百万级数据-程序迁移后续
2017-04-13 18:09 1635百万级数据-程序迁移:http://donald-draper ... -
Msyql日期字符串转换
2017-04-01 14:13 544Date和String的互相转换:http://www.tui ... -
Mysql添加约束
2017-03-31 16:28 902MySQL中对三种约束的支持:http://leekai.me ... -
Mysql FEDERATED引擎
2016-11-29 15:51 608使用mysql federated引擎构建MySQL分布式数据 ... -
Mysql主从配置
2016-11-11 18:31 5311、主从服务器分别作以下操作: 1)版本一致 2)初始 ... -
百万级数据-程序迁移
2016-09-29 19:03 2634JVM学习笔记:http://blog.csdn.net/cu ... -
Mysql 备份工具XtraBackup增量备份
2016-08-05 18:11 723安装:http://donald-draper.iteye.c ... -
Mysql 备份工具XtraBackup全量备份
2016-08-05 16:41 569Percona安装:http://donald-draper. ... -
Mysql 备份工具XtraBackup 安装
2016-08-05 16:28 946开源热备工具XtraBackup下载:https://www. ... -
sysbench基准测试
2016-08-01 17:45 789下载sysbench:http://dev.mysql.com ... -
mysql 事务处理
2016-07-29 16:07 512创建表: CREATE TABLE `role` ( ` ... -
mysql 全文索引
2016-07-28 11:03 615mysql大表查询的时候,'String%'模糊查询可以使用B ... -
MySQL 物理文件的迁移
2016-07-26 15:39 2350参考资料:http://www.cnblogs.com/adv ... -
centos7 安装mysql
2016-07-26 11:36 748下载MYSQL-RPM包:http://downloads.m ... -
mysql 大表添加索引注意事项
2016-07-25 16:01 2646LINXU top命令: http://www.c ... -
mysql 大表分页查询测试分析优化
2016-07-25 11:30 1502索引概念: http://blog.csdn.net/xlur ... -
MySQL事务
2016-06-01 10:49 615事务基础知识:http://my.oschina.net/je ...
相关推荐
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
MySQL触发器是数据库管理系统提供的一种机制,用于在特定的数据操作(如INSERT、UPDATE、DELETE)发生之前或之后自动执行预定义的SQL语句。这些触发器可以用来实现复杂的业务规则,确保数据的一致性和完整性,或者...
MySQL触发器是数据库管理系统中的一种重要机制,它允许在特定的数据库操作(如INSERT、UPDATE、DELETE)发生前后自动执行一段预定义的SQL代码。触发器的引入是为了满足更复杂的数据完整性需求,提供数据验证、业务...
文件“MySQL存储过程.pdf”和“OReilly.MySQL.Stored.Procedure.Programming.rar”可能会提供关于如何创建、调用和管理MySQL存储过程的详细指南,而“MySQL触发器.rar”则可能包含触发器的创建、使用和优化方面的...
### MySQL触发器详解 #### 引言 MySQL触发器,作为MySQL 5.0版本引入的一项重要特性,为数据库管理提供了更为精细的控制能力。触发器允许在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行SQL语句,...
MySQL触发器是数据库管理系统中的一个重要特性,用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这些语句可以是复杂的业务逻辑,用来确保数据的一致性、完整性和安全性。在本篇...
MYSQL触发器,可以使用它用来进行监控,例如商品价格变化,下单后商品库存减少等实用性操作!
在深入探讨MySQL触发器的使用之前,我们先来理解一下什么是触发器以及它在数据库管理中的作用。触发器是数据库中一种特殊的存储过程,当特定的事件(如INSERT、UPDATE或DELETE操作)在指定的表上发生时自动执行。...
### MySQL触发器教程知识点详解 #### 一、MySQL触发器简介 MySQL触发器是一种存储在数据库中的特殊类型的存储过程,当特定的事件(如插入、更新或删除数据)发生时自动执行。它们允许用户定义一系列复杂的规则和...
### MySQL触发器知识点详解 #### 引言 MySQL触发器是一种服务器端的程序,它可以响应特定的数据库事件(如插入、更新或删除记录)而自动执行。触发器自MySQL 5.0版本起被引入,这标志着MySQL在功能性上的一大进步,...
MySQL触发器是数据库管理系统中的一个重要概念,主要用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这些语句可以是复杂的业务逻辑,用于实现数据验证、同步或其他自动化任务。...
本文实例讲述了mysql触发器之创建使用触发器。分享给大家供大家参考,具体如下: 我们可以可以使用CREATE TRIGGER语句创建一个新的触发器,来看下具体的语法: CREATE TRIGGER trigger_name trigger_time trigger_...
### MySQL触发器、存储过程、自定义函数、视图示例 #### 一、MySQL触发器 触发器是一种特殊类型的存储过程,它被设计为在特定事件(如INSERT、UPDATE或DELETE操作)发生时自动执行。触发器可以用来强制业务规则、...
MySQL触发器是数据库管理系统中的一个重要特性,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)发生之前或之后执行自定义的SQL代码。这些自动执行的代码块可以用来实现复杂的业务逻辑,确保数据的一致性和...
MySQL触发器是数据库管理系统中的一个重要特性,它允许在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这为数据库的业务规则提供了强大的支持,可以确保数据的一致性和完整性。以下是...
【MySQL触发器详解】 MySQL触发器是数据库管理系统中的一种重要特性,它允许用户在特定的数据库操作(如INSERT、UPDATE或DELETE)发生之前或之后自动执行预定义的SQL语句。这种特性使得数据库能实现更复杂的业务...
在MySQL数据库中,触发器是一种非常强大的工具,可以在特定的数据操作(如INSERT, UPDATE, DELETE)发生时自动执行预定义的SQL语句。在PHP项目中,我们可以利用触发器来实现信息的备份、恢复和清空功能,以提高数据...