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

标签 php mysql database phpmyadmin

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

数据库"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 votesjob_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/

相关文章:

MySQL 查询未正确返回

mysql WHERE CLAUSE 根据同一列中的两个不同值排除行

php - Memcache->get 返回不同的数组

php - 获取每个帖子的最新单个评论

php - 将基本的 PHP/MySql 转换为 ASP 以查询 MS Sql 数据库

php - Prestashop 如何获取查询中的所有 on_sale 产品?

database - Web 服务和数据库如何相互关联?

mysql - 如何在另一台PC上打开与MySQL数据库的连接?

php - 如何访问 htdocs 文件夹之外的 XAMPP mysql 数据库

php - 已成功提交表单,但控制台中出现一个错误,例如发生数据库错误错误号 : 1048 - Codeigniter