我正在学习一些 Mysql 并且我有一个问题:在我的数据库中,当有人将商品放入购物车时,它会处于“保留”状态。但如果此人在接下来的 30 分钟内没有结帐,则该项目应再次设置为“免费”。不使用 CRON 可以制作吗?或者一些轻量级的解决方案......
谢谢!:)
我正在学习一些 Mysql 并且我有一个问题:在我的数据库中,当有人将商品放入购物车时,它会处于“保留”状态。但如果此人在接下来的 30 分钟内没有结帐,则该项目应再次设置为“免费”。不使用 CRON 可以制作吗?或者一些轻量级的解决方案......
谢谢!:)
一种方法是将 reserved 设置为特定时间,例如:
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 列上放置一个索引。