mysql传输数据到中间表_mysql通过中间表实现数据的“部分复制” -电脑资料

一、基本思路

1.在主库上,为不同的从库建立各自的中间表

2.主库与从库之间只对“中间表”进行复制操作

3.从库上,“中间表”通过触发器,实现与“实体表”的数据同步

二、主库结构与配置

主库结构:

主库配置:

三、从库结构与配置

(以其中的一个从库为例)

从库结构:

其中从库“中间表”上触发器内容如下:

use rel_db;

drop trigger if exists slave_trigger_before_insert_staffinfo_middle_100;

DELIMITER //

create trigger slave_trigger_before_insert_staffinfo_middle_100 before insert on staffinfo_middle_100 for each row

begin

insert into staffinfo values(new.i_userid,new.v_username);

end;

//

DELIMITER ;

从库配置:

四、测试

a)准备数据

1.主库数据初始化

2.从库数据初始化

3.从库开启复制功能

b)数据分发与复制

4.主库分发数据

use rel_db;

drop procedure if exists master_data_dispatch;

DELIMITER //

create procedure master_data_dispatch()

begin

declare i int;

declare v_name varchar(30);

declare staffinfo_cursor CURSOR FOR SELECT i_userid,v_username FROM staffinfo;

declare CONTINUE HANDLER FOR SQLSTATE '02000' SET i =null;

OPEN staffinfo_cursor;

FETCH staffinfo_cursor INTO i,v_name;

WHILE ( i is not null) DO

if (i>=100)and(i<200)and(not exists(select * from staffinfo_middle_100 where i_userid=i)) then

insert into staffinfo_middle_100 values(i,v_name);

else if (i>=200)and(i<300)and(not exists(select * from staffinfo_middle_200 where i_userid=i)) then

insert into staffinfo_middle_200 values(i,v_name);

end if;

end if;

FETCH staffinfo_cursor INTO i,v_name;

END WHILE;

CLOSE staffinfo_cursor;

end

//

DELIMITER ;

call master_data_dispatch;

5.从库“实体表”查询数据

五、说明

1.一旦设置了replicate-do-db,后面的replicate-ignore-db将不起作用(待进一步验证)

replicate-do-table、replicate-ignore-table与之类似

2.主库触发器中(已正确指定difiner)的插入操作无法被同步到从库:只是把触发器的

调用语句写进了二进制文件,从库中不存 在该触发器,mysql通过中间表实现数据的“部分复制”》(https://www.unjs.com)。

3.TRIGGER 一般来说是和引发的SQL是在同一个事务中的,也就是说,只要SQL或TRIGGER只

要有一个出错(包括引发的自定义错误),系统就会自动ROLLBACK,不需要也不能在TRIGGER

中写ROLLBACK语句.这个是和SQLSERVER不同的,SQLSERVER一般是自动COMMIT的.两

种数据库机制不一样.如果想SQL中ROLLBACK,TRIGGER中COMMIT,就要用到自治事务了。

4.自治事务可以把SQL的提交和回滚和TRIGGER中的提交和回滚分开。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360644.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NO1:在Windows端安装SecureCRT来连接Linux

正常情况下都不会直接在Linux服务端进行操作&#xff0c;实际使用服务器和工作电脑不会在同一个地方&#xff0c;也不允许在服务器操作。 我这里用SecureCRT 7.0来连接服务器。提供个下载&#xff0c;带注册机工具&#xff1a;http://pan.baidu.com/share/link?shareid1430164…

如何使用Spring Security和Basic身份验证保护Jersey REST服务

在我之前的博客文章“ 检查REST API是否有效的快速方法–从清单文件中获取GET详细信息”中 &#xff0c;我展示了如何开发REST资源以轻松检查开发的REST API是否可用。 在本文中&#xff0c;我将介绍如何使用Spring Security和基本身份验证来保护此资源的安全性– “在HTTP事务…

python提取数据段_python提取数据段 python数据分析

如何在python中用slice分段取数据&#xff1f;执行以下操作&#xff1a;&gt&gt arange(6)&gt&gt a[0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5]&gt&gt a[0:3]&#xff0c;a[5][[2&#xff0c;3&#xff0c;4&#xff0c;4&a…

计算几何相关资料+题目推荐(不定期补充)

旋转卡壳&#xff1a;http://blog.csdn.net/accry/article/details/6070626 计算几何题目推荐&#xff1a;http://blog.csdn.net/accry/article/details/6070656 先是计算几何入门题推荐 &#xff1a; 计算几何题的特点与做题要领&#xff1a;1.大部分不会很难&#xff0c;少部…

一个JAXB Nuance:字符串与枚举(受限制的XSD字符串)

尽管用于XML绑定的Java体系结构 &#xff08; JAXB &#xff09;在名义情况下&#xff08;尤其是自Java SE 6以来&#xff09; 相当容易使用&#xff0c;但它也存在许多细微差别。 一些常见的细微差别是由于无法将 XML模式定义 &#xff08;XSD&#xff09;类型与Java 类型精确…

weblogic概览下的上下文根配置_weblogic创建域

WebLogic 域配置策略在本文的 第一部分 (第 8 期,卷 3 , WLDJ )中,我曾向您详细介绍了可用于创建和配置域,以及经 过评估的指南和模板选项的不同策略。 ...startWebLogic.cmd 2.startWebLogic-8001.cmd 输入域的管理名和密码即可运行 新建一个停止脚本:stopWebLogic-8001.cmd 内…

ActiveMQ 持久化讯息数据库信息

www.MyException.Cn 发布于&#xff1a;2012-11-10 10:48:50 浏览&#xff1a;0次ActiveMQ 持久化消息数据库信息最近有网友问我&#xff0c;ActiveMQ持久化的中表结构是什么&#xff0c;表需要人工创建吗&#xff1f;我告诉他们不需要&#xff0c;ActiveMQ会帮助我们生成的…

休眠锁定模式– OPTIMISTIC_FORCE_INCREMENT锁定模式如何工作

介绍 在我以前的文章中 &#xff0c;我解释了OPTIMISTIC锁定模式是如何工作的&#xff0c;以及它如何帮助我们同步外部实体状态更改。 在本文中&#xff0c;我们将介绍OPTIMISTIC_FORCE_INCREMENT锁定模式的使用模式。 使用LockModeType.OPTIMISTIC &#xff0c;将在当前正在运…

java mysql nullpointerexception_无法从Java连接到MySQL:MySQL驱动程序连接逻辑中的NullPointerException...

我正在尝试连接到我在Java程序中使用MySQL创建的数据库,但它总是失败.为了举例,这是我的代码&#xff1a;import java.sql.*;public class Squirrel {public static void main(String[] args) {String user;String password;Connection connection;Statement statement;try {Cl…

Android应用中Back键的监听及处理

MainActivity如下: package cn.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent; import android.app.Activity; /*** Demo描述:* 处理Back键按下事件* * 注意事项:* 以下两种方法勿一起使用*/ public class MainActivity extends Activity {Overri…

设置本地Nexus存储库并从Maven部署WAR文件

Maven Central充当中央存储库管理器&#xff0c;其中二进制工件由不同的团队/公司/个人上载并与世界其他地方共享。 就像github和其他对源代码控制非常有效的源代码存储库一样&#xff0c;这些存储库管理器还充当您自己生成的二进制工件的部署目标。 设置本地存储库管理器具有…

mac solr mysql 配置文件_Solr配置文件浅析

接上一篇Linux下安装solr7.4&#xff0c;来谈谈solr的配置文件schema.xml和db-data-config.xml首先看schema.xml&#xff1a;idfield标签用来定义solr core中的字段。这里列出的三个字段如果没有特殊原因尽量保留。字段id被声明为uniqueKey,是让id来唯一标明一个solrdocument。…

JSP自定义标签_用简单标签控制标签体执行10次

什么也不说,直接上代码: import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.tagext.SimpleTagSupport;//控制标签执行10次 public class SimpleTagDemo2 extends SimpleTagSupport …

JSF:在正确的阶段进行验证(了解生命周期)

嗨&#xff0c;大家好&#xff01; 尽管标题强调验证一词&#xff0c;但本文实际上是关于JSF生命周期的。 那是因为我相信&#xff0c;真正了解生命周期的最简单方法之一就是通过做出我们一直在做的事情&#xff1a;验证用户输入。 总的来说&#xff0c;理解所谓的JSF生命周期…

mysql 更改root密码字段不存在_初次登陆MySQL修改密码是出现Unknown column 'password' in 'field list'的解决方法...

新安装的MySQL5.7&#xff0c;登录时提示密码错误&#xff0c;安装的时候并没有更改密码&#xff0c;后来通过免密码登录的方式更改密码&#xff0c;输入update mysql.user set passwordpassword(root) where userroot时提示ERROR 1054 (42S22): Unknown column password in f…

OpenShift v3:使用WildFly和MySQL的Java EE 7入门

OpenShift是Red Hat的开源PaaS平台。 OpenShift v3 &#xff08;将于今年发布&#xff09;将提供使用Docker和Kubernetes运行微服务的整体体验。 以经典的Red Hat方式&#xff0c;所有工作都在OpenShift Origin的开源中完成。 这也将推动OpenShift Online和OpenShift Enterpris…

《c陷阱与缺陷》笔记--注意边界值

如果要自己实现一个获取绝对值的函数&#xff0c;应该都没有问题&#xff0c;我这边也自己写了一个&#xff1a; void myabs(int i){if(i>0){printf("%d\n",i);}else{printf("%d\n",-i);} } 但是&#xff0c;这个函数真的没有问题吗&#xff1f;如果i的…

mySQL日期函数并运行_mysql日期相关的函数

1、获取当前时间&#xff1a;/**获得当前日期时间(date time)函数&#xff1a;now(), 常用**/select now() fromdual;/**获取当前时间戳&#xff0c;current_timestamp或者current_timestamp()**/select current_timestamp, current_timestamp() fromdual;/**获得当前日期时间…

序列化对象C++对象的JSON序列化与反序列化探索

新手发帖&#xff0c;很多方面都是刚入门&#xff0c;有错误的地方请大家见谅&#xff0c;欢迎批评指正 一&#xff1a;背景 作为一名C开发人员&#xff0c;我始终很期待能够像C#与JAVA那样&#xff0c;可以省力的进行对象的序列化与反序列化&#xff0c;但到现在为止&#xff…

Netflix监管者测试–引入了知事-Junit-runner

考虑一个典型的Netflix Governator junit测试。 public class SampleWithGovernatorJunitSupportTest {Rulepublic LifecycleTester tester new LifecycleTester();Testpublic void testExampleBeanInjection() throws Exception {tester.start();Injector injector tester.…