php - SQL Server 和 MySQL 之间的一种同步方式

标签 php mysql sql-server synchronization

我正在尝试将 MySQL 表与 SQL Server 2008 中的表同步。我想要的是从 SQL 服务器同步到 MySQL。我已经将表从 SQL Server 转移到 MySQL,我现在需要的是 PHP 代码,它将在运行时自动更新表(检查更改、插入新行、删除不存在的行)。谁能帮帮我?

最佳答案

虽然我不完全相信这是个好主意,但我知道这在某些用例中可能是必要的(请参阅最后一段),因为不久前我们有类似的要求。

这很有效:

在发送方(无论是什么,在您的情况下是 SQL 服务器)

  • 创建一个包含 id (pk)、表名、tablepk、操作、数据文本字段的表“changelog”
  • 在相关表上创建触发器,在操作成功后将更改写入 changelog 表
  • 让您的代码将更改日志表的内容传输到发送端
  • 如果成功,将其从变更日志表中删除(注意:这里可能存在竞争条件!)

在接收方(无论是什么,在您的情况下是 MySQL)

  • 接收变更日志数据
  • 解析它
  • 对数据库运行更改
  • 如果可行,请发送确认

这个方案工作得很好,即使在 2 个主机之间只能“交谈”它们之间的 HTTP - 它也非常健壮,因为丢失的连接(或接收方重启)只会缓冲发送方的变化changelog 表,在重新建立连接时将其清除。

关于php - SQL Server 和 MySQL 之间的一种同步方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9208213/

相关文章:

php - TCPDF 不格式化

php - 使用 Codeception 和 Laravel 进行登录测试

mysql - 将不存在的 ID 添加到数据库

c# - (附加)EF 无法从 #temp 表中选择的存储过程推断返回架构

php - 尽管被正确引用,样式仍然消失了

php - 如何访问类中的PDO对象?

MySQL-更新具有相同值的列

php - SQL 不会从 php 获取所有传递的变量

JOIN 子句上的 SQL 排序规则问题——运行时极其缓慢

sql - 为结果表提供列名