Mysql 从两个不同结构的数据库同步两个表

Mysql 从两个不同结构的数据库同步两个表,mysql,Mysql,我有两个处理相同产品的php应用程序,一个是购物,另一个是销售点,但每一个都使用自己的数据库 由于它们都处理相同的产品,我希望通过同步2个数据库中的产品表来缩短输入产品数据所用的时间,因此当我在商店中添加新产品时,它会显示在POS中 我搜索了很多,但所有的结果都是关于相同的表结构 不幸的是,在我的情况下,结构是不同的 商店产品表如下所示: id name current_stock category_id brand_id id name code categ

我有两个处理相同产品的php应用程序,一个是购物,另一个是销售点,但每一个都使用自己的数据库

由于它们都处理相同的产品,我希望通过同步2个数据库中的产品表来缩短输入产品数据所用的时间,因此当我在商店中添加新产品时,它会显示在POS中

我搜索了很多,但所有的结果都是关于相同的表结构

不幸的是,在我的情况下,结构是不同的

商店产品表如下所示:

id    name    current_stock  category_id   brand_id
id   name    code    category_id   brand_id
POS产品表如下所示:

id    name    current_stock  category_id   brand_id
id   name    code    category_id   brand_id
另一个问题是pos db中的“代码”列应包含唯一的编号,我使用此命令生成它:

`code` =  FLOOR(1000 + RAND() * 89999999)
我需要在同步过程中生成它

我看到了这篇文章和其他许多帖子 而且是关于相同的桌子

编辑: 起初我会添加所有产品,但之后我只需要添加较新的产品。
这就是我所说的同步的意思,我假设这两个表都在同一个mysql服务器中,并且您的mysql用户帐户具有访问这两个表的正确权限

插入数据库\u pos.pos\u产品 选择id、名称、, 地板1000+兰特*89999999作为代码, 来自数据库shop.shop产品的类别标识、品牌标识; 我不建议使用FLOOR1000+RAND*89999999生成唯一密钥

此语句将查询shop product表中的所有数据,然后将其插入POS product表中。根据您的架构更改表和数据库名称

但正如@stickybit所暗示的那样。如果可能的话,我还建议您将这两个表移动到同一个数据库中

此外,您还可以实现触发器来自动执行此操作

编辑: 添加表中不存在的记录。您必须仅从shop products表中选择这些记录

使用子查询获取集合差

插入数据库\u pos.pos\u产品 选择id、名称、, 地板1000+兰特*89999999作为代码, 类别标识、品牌标识,来自数据库\u shop.shop\u产品sp 其中sp.id不在从数据库选择id_pos.pos_产品中; 使用外部联接获取集合差

插入数据库\u pos.pos\u产品 选择sp.id、sp.name、, 地板1000+兰特*89999999作为代码, 数据库中的sp.category\u id、sp.brand\u id\u shop.shop\u product sp 左连接数据库\u pos.pos\u pp.id=sp.id上的产品pp 其中pp.id为空;
谢谢

是否要自动执行此操作?理想情况下,两个应用程序只需使用同一个数据库即可。如果可能的话,我更愿意这么做。@ThilinaLakshan如果可能的话,yes@stickybit尝试了这个方法,但是当应用程序合并在一起时,有一堆表破坏了应用程序。这两个数据库都在同一个mysql服务器中吗?这将只添加新产品还是复制整个表?这将复制整个表。如果您只想添加新产品,我将更新我的回答是的,请第一次我将添加全部,然后只添加较新的产品。提前感谢您我已经更新了解决方案。请检查它,让我知道它是否工作非常感谢你,你能解释如何实现一个触发器或给出一个链接。您认为基于id列进行比较是可靠的,还是应该使用另一个?