gpt4 book ai didi

php - 将主从MySQL表数据添加到另一个数据库

转载 作者:行者123 更新时间:2023-11-30 23:15:51 24 4
gpt4 key购买 nike

我在没有连接到互联网的不同地方创建了 3 个数据库。

DB A 是总部数据库

DB B是Branch office 1 Database

DB C是Branch office 2 Database

每天晚上我需要从B&C的交易表中复制数据到A中,第二天早上将A中的数据复制到B&C中以使股票数据同步。

事务表由2个表组成

1 。事务主管

|编号 | TRX_NUMBER |日期 | CUSTOMER_ID |

2。交易详情

|编号 |交易_MASTER_ID |元素编号 |数量 |价格 |总计 |

transaction-details.TRANSACTION_MASTER_ID 是 transaction-master.ID 的外键

问题是transaction-master.ID 是自增值,所以如何将transaction-master & transaction-details 数据不间断地复制到A transaction-master & transaction-details foreign键值?

因为如果在 B 上我的表有 1 作为 transaction-master.ID 值,那么当我将 B 数据插入 A 时,可能 1 已经被使用并且将更改为 2(因为自动递增)并且会导致外部transaction-details.TRANSACTION_MASTER_ID 上的键将中断

解决此问题的最佳做法是什么?

解决方案:我从 IRC 上的 MySQL channel 得到了很好的解决方案,在 MySQL 上使用“auto_increment_offset”和“auto_increment_increment”

设置auto_increment_offset A:1, B:2, C:3

在 A、B 和 C 上设置 auto_increment_increment 3

这样主键在每个分支上永远不会相同

最佳答案

我可以想到两种简单的方法:

  1. 不要使用自动递增。例如,使用 UUID。或者:

  2. 将另一个字段添加到 Transaction-master,siteId,并使其成为复合键的一部分。然后,使用 Transaction_master_IDsiteId 作为交易详情的外键。请参阅此问题的第 4 个答案以了解如何执行此操作:Multiple-column foreign key in MySQL?

关于php - 将主从MySQL表数据添加到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17906197/

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