【问题标题】:Mysql Schedule EventsMysql 安排事件
【发布时间】:2013-01-30 03:07:19
【问题描述】:

我正在学习一些 Mysql,我有一个问题: 在我的数据库中,当有人将商品放入购物车时,它会处于“保留”状态。但如果此人在接下来的 30 分钟内没有结帐,则该项目应再次设置为“免费”。不使用 CRON 可以制作吗? 或者一些轻量级的解决方案......

谢谢! :)

【问题讨论】:

  • 嗯,否决票没有回答?这是新的

标签: mysql cron scheduled-tasks


【解决方案1】:

一种方法是将保留设置为特定时间,例如:

update `item` set `reserved` = 1, `reservedto` = ADDTIME(NOW(),'00:30') where `id` = ?;

然后在检查可用项目之前(或其他地方,如果经常发生这种情况)只需添加一个 realese 语句,如下所示:

update `item` set `reserved` = 0 where `reservedto` < NOW() and `reserved` = 1;

如果您有一个大表,您可能希望在 reservedto 列上放置一个索引。

【讨论】:

  • 该表预计会很大...查询会很重,不是吗?
  • 是的,第二个命令会很重,不应该经常执行。您的替代方法是创建第二个表,其中仅包含您在应该释放时“检查”的保留。但是,如果您在“reservedto”和“reserved”上有一个索引,那么上面的第二个命令就不会那么糟糕了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 2021-05-06
  • 2021-07-07
  • 2013-01-26
  • 2020-06-30
  • 2012-07-13
  • 1970-01-01
相关资源
最近更新 更多