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

时间:2013-02-26 05:50:21

标签: mysql database steam

我正在运行游戏服务器和游戏论坛。每个都有自己的数据库。游戏服务器具有跟踪所有玩家及其商店信用的数据库(用于游戏内化妆品)。然后是跟踪用户,帖子等的论坛数据库。

我的目标是奖励在论坛上发布的玩家,在他们提交的每个论坛帖子之后,通过奖励游戏中的货币。我正试图通过这种方法改善论坛参与度。

我怎样才能做到这一点,每次用户发帖时,都会告诉游戏服务器的数据库在他们附加的帐户中添加一定数量的游戏内货币?

论坛按用户的注册ID跟踪用户。游戏服务器通过其帐户ID跟踪用户。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我假设你没有访问权限或者不希望在你的论坛安装中添加代码以实现这一点,那么解决方案就是使用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 =用户数据库中 - 您需要将其替换为正确的定位你的数据库和表格。