mysql数据库中同步两个表中的数据的问题

问问大家 假如我在数据库database中有两个表 分别是players 和users players里有一列为playername 一列为ipadress users表里两列分别是username 和ip
实际上playername和username里的数据是相同的 但出于技术原因,users表中的ip地址为空,让playername表中每一行playername对应users表中的usersname 并将ipadress全部写入对应的ip中 这样如何搞定?最好不只是能处理当前录入的数据 而是让以后ipadress里写入数据的时候ip里会同步数据

第1个回答  推荐于2016-10-19
写个存储过程,方便以后调用,下面是手动写的不对的地方自己改改;
写得累死了,还加了注释 不加分 天理难容 累觉不爱

create or replace procedure publish_users is

cursor c_record_players is
select * from players;

v_cur c_record_players%rowtype;
v_db players%rowtype;

begin
--打开游标,处理结果集
open c_record_players;
loop
fetch c_record_players
into v_cur;
exit when c_record_players %notfound;
--如果是刚开始 users表是空的就插入数据
begin
select count(*)
into v_record_num
from users t
where t.id = v_cur.id;

if v_record_num = 0 then
insert into users
( Ip ,
username)
values
( v_cur.ipadress ,
v_cur.playername
);

else
--方便以后处理如果users不是空的那么就更新数据
update users
set ip = v_cur.ipadress ,
username = v_cur.playername ,
where username = v_cur.playername;

end if;
--数据量大的话 每5000条提交一次
if mod(c_record_players%rowcount,5000) = 0 then
commit;
end if;

end loop;
close c_record_players;
end publish_users;本回答被提问者和网友采纳

实现MySQL数据同步如何让两个表相互同步mysql两表同步数据
MySQL支持使用触发器来自动执行一些操作,例如在一个表中插入数据时,可以在触发器中设定另一个表自动插入相同的数据。使用触发器可以实现数据的自动同步,但对于大型数据库来说,这种方法可能会影响系统性能。2. 使用存储过程进行同步 使用存储过程可以通过一系列操作实现数据的自动同步。例如,可以将一个表...

MySQL表同步实现两个表之间的数据同步mysql两表之间做同步
1. 创建源表和目标表 我们需要创建两个MySQL表:源表和目标表。源表是数据来源,而目标表是数据同步的目标。为了方便演示,本文中我们选用一个简单的例子:源表和目标表均只有两个字段id和name,其中id是主键。create table source_table(id int unsigned not null primary key,name varchar(20));cr...

MySQL双表更新如何同时更新两个表中的数据mysql两表更新
一、使用JOIN语句更新两个表中的数据 JOIN是MySQL中用于连接两个或多个表的关键字。在使用JOIN语句更新数据时,需要使用UPDATE语句和SET子句。SET子句用于设置要更新的新值,语法如下:UPDATE table1 JOIN table2 ON table1.column = table2.column SET table1.column1 = new_value1, table2.column2...

MySQL双表数据同步的实现方法简介mysql两表数据同步
MySQL Trigger是在MySQL数据库上定义的一种特殊的存储过程,可以在数据表上自动执行某些操作。在MySQL数据库中,使用Trigger可以实现自动批准或否决请求,自动更新或删除数据,甚至可以自动将数据同步到另一个数据表。以下是使用MySQL Trigger实现双表数据同步的步骤:1. 创建两个数据表,分别称为Table1和Tabl...

MySQL表同步方法详解实现不同表数据自动同步mysql不同表数据同步
缺点:触发器的执行会带来一定的性能开销,当数据量较大时,可能会影响服务器的性能。二、基于存储过程的表同步方法 存储过程是MySQL中的一种特殊程序,可以接受输入参数并返回多个输出结果。基于存储过程的表同步方法,即通过在数据库中设置一个存储过程,定期执行存储过程,将源表数据同步到目标表中。示例...

MySQL实现不同表同步mysql不同表之间同步
现在,主数据库中的数据已经可以自动同步到从数据库了。2. 使用触发器实现数据同步 另一种实现不同表同步的方式是使用MySQL的触发器技术。通过在MySQL中创建触发器,我们可以指定当一个表中的数据被更新时,就会自动执行相关的SQL语句,以便将数据同步到另一个表。触发器可以很容易地自动化处理数据同步,...

MySQL字段同步问题解决方法mysql不同字段同步
MySQL Workbench是MySQL官方提供的一套交互式数据库设计、开发和管理工具。它提供了一组有用的特性,可帮助解决数据库中的字段同步问题。MySQL Workbench允许用户直接创建和修改表、列和视图。此外,它具有数据库比较和同步功能,可以检查数据库之间的差异,并在多个数据库之间同步表结构。通过这些方法,您可以...

MySQL两表联动修改提升你的数据处理能力mysql中两表关联修改
MySQL两表联动修改是指同时更新两张或多张表中的相关数据。这种操作通俗一点说就是“一改俱改”,即只需要在其中一个表中更新数据,其他相关表中的数据也会自动同步更新。MySQL的两表联动修改可以通过调用MySQL的触发器来实现。触发器是一种在特定事件发生时自动执行的程序。它可以在INSERT、UPDATE、...

MySQL数据表同步的详细解析mysql两表同步详解
在MySQL中,有一个叫binlog的日志文件,它记录了所有的DDL和DML语句,包括对数据表的修改、创建和删除操作等。基于binlog日志的同步就是通过解析binlog日志文件来获取数据表更新信息,然后将这些信息同步到另一个MySQL数据表中。具体步骤如下:(1)在源MySQL服务器上开启binlog日志,并设置需要同步的数...

MySQL库数据同步如何实现不同库之间的数据同步mysql不同库同步数据
MySQL提供了Trigger前置触发器和后置触发器两种方式,可以实现多种数据操作的同步。使用这种方法需要在数据操作前或数据操作后触发。但是,使用Trigger方式也有其缺点:对于大量数据操作的同步,可能会引起性能问题,增加服务器的负担。Trigger示例代码:设置触发器,实现上一个库中的数据更新时对应的表在当前库...

相似回答