gpt4 book ai didi

mysql - SQL-在数据库表中实时插入

转载 作者:行者123 更新时间:2023-11-29 13:16:51 24 4
gpt4 key购买 nike

我有一个数据库,我需要创建一个表并实时插入一个或多个列。

我会解释我到底想要什么,也许你可以帮忙。

我正在制作一款游戏,因此我需要随着时间的推移用户获得金币。例如,如果实时时间是上午 12:00,我希望用户在 12:15 获得 50 个硬币(因此数据库内的变量会在时间流逝后自动更改),然后在 12:30 他们获得 50 个硬币等。无论他们在线还是离线,这一切都会发生。 (我希望数据库始终工作!)

最佳答案

在 MySQL 中,始终可以使用表达式 NOW() 来检索当前时间。

现在假设您希望每个玩家以每小时 200 枚的速度获得金币。这恰好是每 18 秒一枚硬币;这很重要,因为我们将使用整数算术。

为自己创建一个表user,其中包含这些列。我想您也可以将其他列也放在其中。

  user_id                INT
current_coin_balance INT
last_autopay DATETIME

然后,每隔一段时间,运行以下查询:

  UPDATE user 
SET current_coin_balance = current_coin_balance +
ROUND(TIMESTAMPDIFF(SECOND,last_autopay, NOW()) / 18),
last_autopay = NOW()

如果您愿意,可以添加一个 WHERE 子句,以便仅更新任何给定查询运行中的某些用户或多个用户。如果没有 WHERE 子句,查询将处理所有用户。

这将计算出自最近一次付款以来的秒数,然后除以十八以获得硬币数量。然后,它将记入用户的余额并记录付款时间。

对任何特定用户运行此查询的频率并不重要。您可以在每次触及用户记录时运行它,或者每 15 分钟运行一次,或者根据您的需要运行它。

如果您愿意,您可以将其作为所谓的 MySQL 事件(批处理作业)运行。

关于mysql - SQL-在数据库表中实时插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21355309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com