mysql - 将多个mssql数据库与php合并为一个mysql

标签 mysql sql-server import

我们正在通过将多个 Microsoft SQL Server 数据库组合到一个 MySQL 数据库来处理一个数据聚合项目。所有 mssql 数据库都具有相同的架构。

要求是:

  • 每个mssql数据库都可以独立导入mysql
  • 在能够将每条记录导入 mysql 之前,我们需要通过 php 使用特定的 createrias 验证每条记录。

  • 每个导入的 mssql 数据库都可以回滚。这意味着即使它已经导入到mysql,所有的mssql数据库也可以从mysql中删除。

  • 我们还想知道导入到mysql的每条记录是从哪个mssql数据库来的。

    所有导入过程都将使用 PHP 完成。

    我们在很多方面都有困难。我们不知道解决问题的最佳方法是什么。

    非常感谢您的帮助。

    ps:每个mssql数据库有60张左右的表,每个表可以有几十万个。

最佳答案

不要将 PHP 用作数据库管理实用程序。每当您构建一个快速的 PHP 脚本以将记录直接从一个数据库传输到另一个数据库时,当生产操作需要该脚本时,您将给自己带来巨大的伤害。

你有很多问题需要解决:

  • 您有多个 MSSQL 数据库,这些数据库具有相似但不完全相同的表。
  • 您有一个要将数据合并到其中的 MySQL 数据库。
  • 导入的数据在合并之前必须以特定方式更改。
  • 您想在导入时避免所有重复记录。
  • 您想知道每条记录最初来自哪个数据库。

解决方案?

  1. 分析源 MSSQL 数据库并为它们创建合并策略。
  2. 在 MySQL 数据库上创建适合 #1 中合并策略的数据库结构,包括合并所需的所有新键约束(如唯一键和外键)。

此时你有两个选择:

  1. 使用您选择的 RDBMS 管理实用程序将每个源数据库中的数据转储到原始数据中。更改该数据以适合您的合并策略和约束。记录下来,然后将所有数据合并到您的新数据库结构中。
  2. 使用类似 opendbcopy 的工具将列从一个数据库映射到另一个数据库并运行批量导入。

希望这对您有所帮助。

关于mysql - 将多个mssql数据库与php合并为一个mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8904228/

相关文章:

sql-server - 长时间运行的查询是否会阻止对相关表的插入?

sql-server - 如何将 SQL Server 合并到 Nuxt.js 应用程序中

import - 无法使用 Julia 中的 MLDatasets 包导入 MNIST 数据集

java - 从哪里获取 org.apache.* 类型的库以及如何配置它们?

mysql - 一栏减一栏

c# - 为什么我在此代码中收到 "You have an error in your SQL syntax"错误?

mysql - Docker Wordpress 连接到本地主机上的数据库服务器

c# - Entity Framework varchar 外键不区分大小写

typescript - 如何让 TypeScript 忽略导入?

php - 具有虚拟模型属性的 CDbCriteria