MySQL 同步表
来源:互联网 发布:淘宝买家不退货 编辑:程序博客网 时间:2024/06/06 01:17
简述:
小编之前没有搞过数据库编程,所以在网上看看学习数据库都有哪些书籍,结果发现有两本教程是比较火的,一本是《深入浅出MySqL第二版》、一本是《高性能MySQL第三版》,小编本来对技术是十分痴迷,打算要买下这两本书籍,一看价格小编也是作实窘,无奈舍爱在网上查看没有PDF版,结果还真有!甚是惊喜!
于是乎,小编就先从深入浅出MySQL学起,大概学了四天时间,里面主要分5大块:基础篇、开发篇、优化篇、管理维护篇、架构篇,小编直接从第2块看起!目前也是正在学习,感觉讲的还是比较浅,只是教如何使用,以及讲述里面的基本概念。
需求:
- 同一个数据库,表写入数据到b表,当a表有新数据时 程序怎么自动检测到b表里面 最后实现数据同步。参考链接:http://stackoverflow.com/questions/4753878/how-to-program-a-mysql-trigger-to-insert-row-into-another-table;http://www.codeproject.com/Questions/650112/Update-row-to-another-table-using-mysql-trigger;
- MySQL创建触发器实现统一主机下两个数据库的表同步(主从)
首先创建两个数据库a,b;
其次在两个数据库中创建表table1,table2(结构一致,表名可以不一样)
再次在数据库a创建中创建触发器a_copy_b
再次向数据库table1添加数据
再次查询table1,table2 看看结果是否一样!
(创建触发器需要在mysql dos 命令下创建!) - 下面是部分mysql doc命令
在数据库a中创建触发器use a;mysql> delimiter $$mysql> create trigger a_copy_b after insert on table1 for each row -> begin insert into b.table2(id,val) values(new.id,new.val); -> end $$Query OK, 0 rows affected (0.06 sec)向数据库a中表table1插入数据mysql> use a;Database changedmysql> insert into table1 values('006','5632156');Query OK, 1 row affected (0.04 sec)查询数据库a中表数据mysql> select * from table1;+------+---------+| id | val |+------+---------+| 1 | 1354854 || 2 | 1354854 || 3 | 1354854 || 4 | 5656556 || 6 | 5632156 |+------+---------+5 rows in set (0.00 sec)查询数据库b中表数据mysql> use b;Database changedmysql> select * from table2;+------+---------+| id | val |+------+---------+| 6 | 5632156 |+------+---------+1 row in set (0.00 sec)可以看到,当表table1有数据增加时,表table2也会有数据增加,同理delete,updata原理一样!
3.不同数据库,同一个mysql 实例,同一张表
创建触发器use a;mysql> delimiter $$mysql> create trigger a_copy_b after insert on table1 for each row -> begin insert into b.table2(id,val) values(new.id,new.val); -> end $$Query OK, 0 rows affected (0.06 sec)创建存储过程mysql> use a;Database changedmysql> delimiter $$mysql> create procedure check_insert() -> begin -> insert into b.table2 select * from table1 where id not in (select id from b.table2); -> end $$ mysql> delimiter ;Query OK, 0 rows affected (0.01 sec)创建定时事件mysql> use a;mysql> create event e_sync_ab on schedule every 1 second -> on completion preserve -> do call check_insert();Query OK, 0 rows affected (0.00 sec)第一次启动,需要将第一个数据库表中全部数据,导入另一个数据库表中,以后表table1 新增一条记录,表table2也会新增一条记录,同时,数据库a中增加了定时事件,定时任务可以调用存储函数,来解决插入失败的数据,定时操作可以每两个小时到数据库a中table1查询数据库库b表table2中没有的记录,然后插入表table2。这里面暂时没有设计事务!
0 0
- 同步MySQL表结构
- MySQL 同步表
- MySQL表结构同步工具
- MySQL 触发器实现表同步
- Mysql只同步某些表
- Mysql----同步,克隆数据库表
- MySQL 同步
- MySQL 同步
- MySQL结构同步时分区表无法同步的问题
- MySql - 主从同步且只同步指定表
- mysql对比表结构对比同步,sqlyog架构同步工具
- logstash同步mysql数据,多表同步配制
- HIVE表同步至MySQL表
- 多主一从mysql replication同步表
- MySQL 同步两个表的某些字段
- mysql单个表的主从同步
- mysql同步远程数据库某个表
- 定时同步数据库表(mysql+linux+crontab)
- GitHub 排名前 100 的安卓、iOS项目简介
- A Fully Featured Windows HTTP Wrapper in C++
- MultipeerConnectivity.framework梳理
- 获取 request 中用POST方式"Content-type"是"application/x-www-form-urlencoded;charset=utf-8"发送的 json 数据
- 2016-5-20-1
- MySQL 同步表
- Python FTP实现
- java的内存回收机制GC
- 万能启动的最后的传说:UD三分区法部署教程!UD加UEFI!
- 手把手教你写框架之ShykyAnnotations - 原理篇
- Java多线程之wait(),notify(),notifyAll()
- Mycat分布式事务的实现
- Android中Activity切换动画
- SVN简介和工作原理