[英]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's
表votes
。
有什么可能的安全方式来进行此类数据导入?
我可以简单地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。 使用这种方法,您的密钥将成为所有服务器上的唯一密钥。 要使此方法有效,还需要做一些前端工作,但是一旦使用它,合并数据库就不是问题了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.