2

我有 2 个脚本的 sql 表,我需要同步到另一个,这可以通过 php cron (这是我的计划)从一行中完成

表 1 表 2

第 1 行 <----> 第 1 行

第 2 行 <----> 第 2 行

第 3 行不同步 第 3 行

同一服务器上的两个数据库和同一用户对两者都具有完全权限

我正在寻找通过 cpanel cron 执行此操作的 php 代码

事后考虑是否最好将两者合并,以便使用新数据进行更新?

问题是在上面的示例中,我需要第 3 行不要在两个数据库上进行更改

我很菜鸟,所以请提前好笑谢谢

更新*

我应该学习如何更好地解释。

这两个数据库都是站点的控制面板,其中一个表行中包含系统 url,所以如果我共享数据库“站点 2”链接指回“站点 1”,这对我来说是一个复杂的问题,因为我非常对此很陌生。

我需要的是使两个数据库保持最新状态,除了单行,这对两个数据库来说又是不同的。

我还没有尝试过任何东西,因为我不知道从哪里开始:(哈哈

4

1 回答 1

2

您不必使用 cron。当前版本的 MySQL 支持TRIGGERSEVENTS.

您可以使用 TRIGGER 将数据复制到另一个表。该副本(或任何其他操作)可能由某些事件(如表中的插入、更新或删除)触发。TRIGGER可以运行任何查询或任何 PL/SQL 代码。

其他选项是EVENT. 这类似于 MySQL 中内置的内部任务调度程序。它还可以运行查询或任何 PL/SQL 代码,但它是由系统时间触发的(如 Linux Cron)。与 cron 相比,它有很多优点。

PL/SQL 是过程 SQL,具有循环、变量等。

如果您认为自己是“菜鸟”-我可以治愈您。阅读有关 MySQL 的书籍,或者如果你是懒惰的 - 观看一些教程(http : //thenewboston.org,http: //phpacademy.org)。

这里没有人会为你写代码。我们只能修复错误,提供建议等:)

编辑。

事件示例:

-- this is comment in SQL language (line starts with --)
CREATE EVENT event_daily_copy_something
    ON SCHEDULE
      EVERY 1 DAY
    COMMENT 'This text will appear in MySQL Workbench as description of event'
    DO
      BEGIN
        INSERT INTO your_db_name.target_table_name(id, field)
          SELECT id, something
            FROM your_db_name.source_table_name
            WHERE id = 3;
      END

表的同步是相当复杂的。我认为您在事件中需要很少的操作。

  1. 检查新行并复制
  2. 检查已删除的行并在“复制”表中删除它们
  3. 检查更改的行(这里源表上的触发器非常有用,因为触发器“知道”编辑了什么行,您可以访问表 1 中的新字段值并使用它们来更新表 2)。

MySQL 教程之一 - thenewboston@youtube。

于 2013-01-22T23:41:49.413 回答