我在两个不同的服务器上有一个数据库。
数据库"store" on server A
和相同的数据库 "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"
以这种方式使得服务器的行(记录)A's
数据库表被插入服务器 B's
增量为 B's
的数据库表 table "jobs" job_id
从1200开始。
并相应插入B's
table votes
新job_id
B 的服务器作业 job_id 。
有哪些可能的安全方法来配合此类数据导入?
我可以简单地export SQL from phpMyAdim from server A
然后 import to server B's phpMyAdmin
.但我害怕失去记录的一致性。
最佳答案
您有一些可能的方法。您使用哪种可能取决于这是一次性的事情还是您计划多次做的事情。
一个非常简单的方法是将 10000 添加到 DB A 中两个表中的所有自动增量值,然后创建 SQL 脚本,将这些值导入到 DB B 中。自动增量中会有一个间隙顺序,但这确实是个问题。 (如果您想防止这种差距,您显然可以修改这种方法,将 DB B 中每个表的确切行数添加到 DB A 表中的自动增量值)。
另一种方法可能是编写一个脚本来为您执行此迁移。使用这种方法,您可以从 DB A 读取数据并在 DB B 中跨连接插入以强制执行关系,同时让 DB B 自动设置自动增量值。
另一种方法可能是将数据从数据库 A 导入到数据库 B 中的单独表中,然后从新表中选择数据并通过连接插入到现有表中。
关于php - MYSQL:导出/导入数据以防止表一致性的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19187629/