gpt4 book ai didi

php - 合并多个具有相同结构的 mySQL 数据库

转载 作者:行者123 更新时间:2023-11-30 23:36:17 25 4
gpt4 key购买 nike

我想编写一个合并多个数据库的 php 脚本,并且我想在开始任何事情之前确定如何绕过它。

我有 4 个数据库,它们具有相同的结构和几乎相同的数据。我想在保留(或重新链接)外键的同时合并它们而没有任何重复条目。

例如,有一个 db1.product 表与 db2.products 几乎相同,所以我想我必须使用 LIKE 比较 namedescription 列以确保我只插入新行。但是,当合并 orders 表时,我必须确保 productID 仍然指示正确的产品。

所以我想到了2个解决方案:

  1. 或者我对每个表使用 insert into db1.x as select * from db2.x 然后创建新链接并使用触发器检查重复项。

  2. 要么我删除重复的条目并更新新的外键(在删除约束之后),然后将行插入到主数据库中。

  3. 刚听说 MySQL Data Compare 和 Toad for mySQL,他们能帮我合并表吗?

有人可以告诉我什么是正确的解决方案吗?

对不起我的英语,谢谢!

最佳答案

首先,您如何确定产品是否相同?您在名称和描述中提到了 LIKE 比较。您需要建立一条规则,说明该产品在您的 db1、db2 等中是同一个产品。

但是,我们假设产品的名称和描述是定义它的属性。

ALTER TABLE products ADD UNIQUE('name', 'description');

在您的所有数据库上运行它。

完成后,选择您希望导入的数据库之一并运行以下查询:

INSERT IGNORE INTO db1.products SELECT * FROM db2.products;

对其余数据库重复上述操作。

当然,如果您无法确定要如何比较产品,那么这一切都会失败。注意:切勿对列名称使用保留字,例如单词“name”。

关于php - 合并多个具有相同结构的 mySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7121636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com