我有一个很大的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);
我希望更改的值更新。例如,如果$ 3与小数据库中'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'";
答案 0 :(得分:1)
如果两个数据库都托管在同一物理硬件上,您可能需要考虑在“大”数据库中的一个或多个表上实现UPDATE触发器,这将更新“小”数据库中的值。
这篇文章简要概述了在MySQL中使用触发器: http://www.roseindia.net/mysql/mysql5/triggers.shtml
答案 1 :(得分:0)
我可以想到两种方法可以做到这一点:
更改“大”数据库的软件,提醒管理小型数据库的软件,然后管理软件更改相应的字段。
我认为你可以在两个数据库之间创建一个视图,但从来没有做过类似的事情,即使它可能也不知道,但为什么不呢,你可以在两个(或更多)数据库之间创建外键。 / p>