如何根据其他数据库中的更改修改一个数据库中的值?

如何根据其他数据库中的更改修改一个数据库中的值?

问题描述:

我正在运行一个游戏服务器和一个游戏论坛。每个都有自己的数据库。游戏服务器有一个数据库,用于跟踪所有玩家和他们的商店积分(用于游戏中的化妆品)。然后是跟踪用户,帖子等的论坛数据库。如何根据其他数据库中的更改修改一个数据库中的值?

我的目标是奖励发布在论坛上的玩家,他们在每次提交论坛帖子后授予他们游戏币。我正试图通过这种方法来提高论坛的参与度。

我该如何做到这一点,以便每当用户发布帖子时,它都会告诉游戏服务器的数据库将一定数量的游戏币添加到其附加帐户中?

论坛通过他们的注册ID跟踪用户。游戏服务器通过他们的账户ID跟踪用户。

感谢您的帮助!

+0

你使用的数据库类型是什么? MySQL的? – 2013-02-26 05:56:03

+0

是的,MYSQL数据库。 – raimond 2013-02-26 06:02:23

我假设你没有访问权限或不希望为你的论坛安装添加代码以实现此目的,那么解决方案可能是使用MySQL的触发器。你需要用正确的表名替换,因为你没有发布你的数据库表结构。

CREATE TRIGGER `CreditsSync` AFTER UPDATE ON `F`.Posts 
FOR EACH ROW BEGIN 
    UPDATE `U`.Users, `F`.Posts SET `U`.Users.credits = `F`.Posts.num WHERE `F`.Posts.userid = `U`.Users.id 
END 

触发器需要MySQL 5.5或更高版本,请参阅https://dev.mysql.com/doc/refman/5.5/en/triggers.html以获取更多信息。

编辑 - 注意到您想插入不同数据库的不同表中,在上面的SQL F =论坛数据库中,以及U =用户数据库 - 您需要将其替换为正确的dbs目标和桌子。

+0

你好,谢谢你的帮助。我会仔细看看的。是的,我准备修改我的论坛来实现这个结果。如果我尝试修改论坛或按照您发布的方式进行操作,最好吗? – raimond 2013-02-26 06:32:58

+0

这取决于你的MySQL版本,触发器是解决这个问题的好方法 - 但是如果你没有这个版本,你需要在你的论坛安装中添加一些(PHP?)代码。如果您发现答案有帮助,您可以接受并/或为其投票。 – 2013-02-26 06:56:17