MySQL实现两张表数据的同步
mysql通过触发器实现两个表的同步,需要了解的朋友可以看一下。
有两张表A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录。两张表的结构不同,需要将其中几个字段对应起来。可以用下面的触发器实现。
表A的触发器:
begin set @disable=1; if @disable=1 and NOT EXISTS(SELECT 1 FROM tableB where ID=new.ID) then insert into tableB (ID,对应字段1) values(new.ID,new.对应字段1); end if; set @disable=0; end
表B的触发器:
begin set @disable=1; if @disable=1 and NOT EXISTS(SELECT 1 FROM tableA where ID=new.ID) then insert into tableA (ID,对应字段1) values(new.ID,new.对应字段1); end if; set @disable=0; end
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
mysql 触发器实现两个表的数据同步
mysql通过触发器实现两个表的同步 目前,在本地测试成功. 假设本地的两个数据库a和b,a下有表table1(id, val) b下有表table2(id, val) 假设希望当table1中数据更新,table2中数据同步更新. 代码: DELIMITER $$ CREATE /*[DEFINER = { user | CURRENT_USER }]*/ TRIGGER `a`.`触发器名` BEFORE UPDATE ON `a`.`table1` FOR EACH ROW BEGIN I
-
MySQL 5.7双主同步部分表的实现过程详解
前言 最近遇到一个需求,由于公司自身业务,两个数据库之间某些表需要实时双向同步数据,且其中任何一台数据库宕机都不会影响另外一台数据库,这里记录一下自己的技术调研,以便后期重构中使用.下面话不多说了,来一起看看详细的介绍吧. 安装MySQL5.7 推荐直接进官网 https://dev.mysql.com 下载yum源的方式安装,毕竟安全又省事. wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm y
-
MySQL实现两张表数据的同步
mysql通过触发器实现两个表的同步,需要了解的朋友可以看一下. 有两张表A和B,要求往A里面插入一条记录的同时要向B里面也插入一条记录,向B里面插入一条记录的同时也向A插入一条记录.两张表的结构不同,需要将其中几个字段对应起来.可以用下面的触发器实现. 表A的触发器: begin set @disable=1; if @disable=1 and NOT EXISTS(SELECT 1 FROM tableB where ID=new.ID) then insert into tableB (
-
MySQL 两张表数据合并的实现
有一个需求, 需要从数据库中导出两张表的数据到同一个excel中 鉴于是临时的业务需求, 直接使用Navicat 进行查询并导出数据. 数据涉及到三张表 CREATE TABLE `bigdata_qiye` ( `id` bigint(64) NOT NULL COMMENT '主键', `tenant_id` varchar(12) DEFAULT '000000' COMMENT '租户ID', `registration_type` int(2) DEFAULT NULL COMMENT
-
mysql关联两张表时的编码问题及解决办法
Mysql关联两张表时,产生错误提示Illegal mix of collations 1.先用工具把数据库.两张表的编码方式改变 2.这步很重要,需要改变字段的编码方式. ALTER TABLE `表名` CHANGE `dev_chancode` `字段` VARCHAR(32) CHARACTER SET gbk NOT NULL; 总结:在建表时一定注意统一的编码方式,后续搞来搞去超级麻烦. 如何解决MySQL表编码转换问题 将待导出的数据表的表结构导出(可以用Phpmyadmin.my
-
数据库中两张表之间的数据同步增加、删除与更新实现思路
分别创建增加.删除.更新的触发器(Trigger)来达到两张表之间数据同步的目的. 1:数据同步增加: 如有两张表--A表和B表,创建触发器使当A表插入数据后B表也同步插入数据.其中B表插入数据的字段需要同A表中的字段相对应. 复制代码 代码如下: CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字段3 FROM INSERTED END
-
MYSQL使用Union将两张表的数据合并显示
使用UNION操作符 union:用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中.多个 SELECT 语句会删除重复的数据. 使用union操作符会将多张表中相同的数据取值一次,如果想将表1和表2中的值完整的显示出来,可以使用union all. 演示 小伙伴们自行创建一下表. 表1数据如下: 表2数据如下: OK,表数据已经创建完成,一共五条数据,接下来我们去看一看union 和 union all 的使用. 使用union 看一下效果: select t1.id id, t
-
mysql从一张表查询批量数据并插入到另一表中的完整实例
说在前面 nodejs 读取数据库是一个异步操作,所以在数据库还未读取到数据之前,就会继续往下执行代码. 最近写东西时,需要对数据库进行批量数据的查询后,insert到另一表中. 说到批量操作,让人最容易想到的是for循环. 错误的 for 循环版本 先放出代码,提前说明一下,在这里封装了sql操作:sql.sever(数据库连接池,sql语句拼接函数,回调函数) for(let i=0;i<views.xuehao.length;i++){ sql.sever(pool,sql.select(
-
MySQL如何实现两张表取差集
目录 MySQL两张表取差集 求差集 SQL 脚本 MySQL查两个表之间的数据差集 SQL LEFT JOIN 关键字 总结 MySQL两张表取差集 业务场景如下: 人员表中有证件号.手机号字段,这两个字段因为涉及到个人隐私问题,因此加密存储,有另外一张解密表可以和人员表进行关联,查出解密后的证件号和手机号,现在需要统计出人员表中有多少没有加密的数据,进行再次加密处理,这个时候,考虑到的就是求两张表的差集,来找出未加密的人员. 求差集 SQL 脚本 select p.* from person
-
Oracle两张表关联批量更新其中一张表的数据
方法一(推荐): UPDATE 表2 SET 表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A) WHERE EXISTS (SELECT 1 FROM 表1 WHERE 表1.A = 表2.A); 尤其注意最后的外层where条件尤为重要,是锁定其批量更新数据的范围. 方法二: MERGE INTO 表2 USING 表1 ON (表2.A = 表1.A) -- 条件是 A 相同 WHEN MATCHED THEN UPDATE SET 表2.C = 表1.
-
php+mysqli批量查询多张表数据的方法
本文实例讲述了php+mysqli批量查询多张表数据的方法.分享给大家供大家参考.具体实现方法如下: 注意这里使用到了两个新的函数multi_query与store_result,具体代码如下: 复制代码 代码如下: <?php //1.创建数据库连接对象 $mysqli = new MySQLi("localhost","root","123456","liuyan"); if($mysqli->connect_
-
如何将MySQL的两个表名对调
前言 前段实践遇到个问题,在类似pt-osc场景下,需要将两个表名对调,怎么才能确保万无一失呢? 分析 一些人可能就会想,表名对掉还不简单吗,相互RENAME一下嘛. 但是,我们想要的是同时完成表名对调,如果是先后的对掉,可能会导致有些数据写入失败,那怎么办? 解决 其实也不难,从MySQL手册里就能找到方法,那就是:同时锁定2个表,不允许写入,然后对调表名. 我们通常只锁一个表,那么同时锁两个表应该怎么做呢,可以用下面的方法: LOCK TABLES t1 WRITE, t2 WRITE; A
随机推荐
- Shell脚本数组用法小结
- SQLite3 命令行操作指南
- 老生常谈combobox和combotree模糊查询
- java基本教程之线程让步 java多线程教程
- 原生JS实现图片轮播切换效果
- 几种判断asp.net中session过期方法的比较
- 获取App.config配置文件中的参数值
- 如何使用C#在PDF文件添加图片印章
- Asp.net Core 1.1 升级后操作mysql出错的解决办法
- android使用AsyncTask实现多线程下载实例
- Docker中的镜像详细介绍
- javascript实现验证IP地址等相关信息代码
- 解决js图片加载时出现404的问题
- C#定制Excel界面并实现与数据库交互的方法
- jquery阻止冒泡事件使用模拟事件
- Visual Studio.Net 内幕(6)
- JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
- Java日期时间格式化操作DateUtils 的整理
- C#检查指定对象是否存在于ArrayList集合中的方法
- Hibernate迫切连接和普通连接的区别实例详解