0

我有一个大的 MySQL 数据库,我正在将重要的部分提取到一个较小的 MySQL 数据库中。大数据库中的值是不断变化的。较小的数据库也应该动态变化。

我只能在较小的数据库为空时填充较小的数据库,使用以下代码:

$SQL_INSERT="INSERT LOW_PRIORITY IGNORE INTO oddsnavi_baby.calc (one , two, three)
VALUES ('$one', '$two' , '$three')";

mysql_db_query($database_baby, $SQL_INSERT) or die("Failed Query of " . $SQL_INSERT);

我希望更新更改的值。例如,如果 $three 与小型数据库中“three”中的现有值不同,则“three”是该行中唯一更新的值。怎么做?

编辑:我收到以下代码错误。我的语法有什么问题?

$SQL_INSERT="INSERT LOW_PRIORITY IGNORE INTO oddsnavi_baby.calc (one , two, three)
VALUES ('$one', '$two' , '$three')
ON DUPLICATE KEY UPDATE oddsnavi_baby.calc SET two = '$two' , three = '$three'
WHERE one = '$one'";
4

2 回答 2

1

如果两个数据库都托管在相同的物理硬件上,您可能需要考虑在“大”数据库中的多个表之一上实现 UPDATE 触发器,这将更新“小”数据库中的值。

这是一篇简要概述在 MySQL 中使用触发器的文章: http ://www.roseindia.net/mysql/mysql5/triggers.shtml

于 2012-04-30T22:15:40.300 回答
0

我可以想到两种方法可以做到这一点:

  1. 更改“大”数据库的软件,提醒管理小型数据库的软件,然后管理软件更改相应的字段。

  2. 我认为您可以在两个数据库之间创建一个视图,但从未做过类似的事情,即使它可能也不知道,但为什么不呢,您可以在两个(或更多)数据库之间创建外键。

于 2012-04-30T22:15:38.090 回答