繁体   English   中英

MYSQL:导出/导入数据以防止表一致性的最佳方法

[英]MYSQL: Best way to export/import data to prevent consistency of tables

我在两个不同的服务器上有一个数据库。

"store" on server A数据库"store" on server B相同数据库"store" on server B

“商店”数据库具有以下两个表:

+-----------------------+           +---------------------+
:      jobs             :           :      votes          :
+.......................+           +---------------------+
:job_id     :primary key: --------> : job_id : primary key: (Linked to jobs->job_id)
+-----------+...........+           +---------------------+
:     title             :           :      up             :
+-----------------------+           +---------------------+
:   description         :           :      down           :
+-----------------------+           +---------------------+

表作业和投票通过foreign key关联(链接)。

服务器A上的数据库“存储”

jobs有2300行,其job_id(primary key)从1到2300开始

表格votes有相应的行

服务器B上的数据库“存储”

jobs有1200行,其job_id(primary key)从1到1200开始

表格votes有相应的行

问题:

我想以这种方式将for server "A" database to server "B"数据导入for server "A" database to server "B" ,以使服务器A's数据库表的行(记录)以B's"jobs" job_id的增量插入服务器B's数据库表中1200以上。 并用B的服务器作业job_id的新job_id将相应的插入B'svotes

有什么可能的安全方式来进行此类数据导入?

我可以简单地export SQL from phpMyAdim from server A ,然后import to server B's phpMyAdmin 但是我恐怕会失去记录的一致性。

您有一些潜在的方法。 您使用哪个可能取决于这是一次性的还是打算多次执行的。

一种非常简单的方法是在DB A的两个表中的所有自动增量值中添加10000,然后创建可以将这些值导入DB B的SQL脚本。自动增量序列中会有一个缺口,但是这确实是一个问题。 (如果您想避免这种差距,显然可以修改此方法,以将DB B中每个表的确切行数添加到DB A表中的自动增量值)。

另一种方法可能是编写脚本来为您执行此迁移。 使用这种方法,您可以从数据库A中读取数据,并在数据库B中的联接之间插入插入以加强关系,同时让数据库B自动设置自动增量值。

另一种方法可能是将数据从数据库A导入到数据库B中的单独表中,然后从新表中选择数据并通过联接插入现有表中。

您可能需要考虑研究UUID。 使用这种方法,您的密钥将成为所有服务器上的唯一密钥。 要使此方法有效,还需要做一些前端工作,但是一旦使用它,合并数据库就不是问题了。

插入PHP后获取生成的uuid

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM