【问题标题】:How to modify the values in one database based on changes in the other database?如何根据另一个数据库中的更改修改一个数据库中的值?
【发布时间】:2013-02-26 05:50:21
【问题描述】:

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

我的目标是奖励在论坛上发帖的玩家,通过在他们提交每个论坛帖子后奖励他们游戏内的货币。我正在尝试使用这种方法来提高论坛参与度。

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

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

感谢大家的帮助!

【问题讨论】:

  • 您使用的是什么数据库类型? MySQL?

标签: mysql database steam


【解决方案1】:

我假设您没有访问权限或不希望将代码添加到您的论坛安装以实现此目的,那么解决方案可能是使用 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 = 用户数据库 - 你需要用正确的替换它针对您的数据库和表格。

【讨论】:

  • 您好,感谢您的帮助。我会仔细看看的。是的,我已准备好修改我的论坛以实现此结果。如果我尝试修改论坛或按照您发布的方式进行,会更好吗?
  • 这取决于你有什么版本的 MySQL,触发器是解决这个问题的好方法——但如果你没有那个版本,你需要添加一些(PHP?)代码到你的论坛安装。如果您认为答案有帮助,您可以接受和/或投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-16
  • 2021-05-29
  • 1970-01-01
  • 2022-09-29
相关资源
最近更新 更多