MySql - 运行触发器以在指定时间后更改列状态

标签 mysql sql triggers schedule eventtrigger

我想知道这在 Mysql 中是否可行以及如何实现。

我正在运营一个电子商务网站,当用户购买东西时 - 在感谢页面上 - 我想给他们一个折扣代码,并附上一条消息说 - 折扣代码将在 4 小时或 6 小时或 24 小时后过期。

基本上逻辑是 - 一旦付款 - 创建一个唯一的折扣代码并将其插入此折扣表中,如下所示

discount_id | user_id | discount_code | is_active | date_created
    101     |   21    |   50$OFF      |    Y      | 9/21/2012 13:00:00 

所以一旦 2 小时结束 - 我希望触发器或事件自动执行并将 is_active 状态更改为 N

discount_id | user_id | discount_code | is_active | date_created
    101     |   21    |   50$OFF      |    N      | 9/21/2012 15:00:00 

提前致谢

最佳答案

最好只存储折扣的过时时间戳,例如 discount_until

这样你就不需要设置任何东西。

在人的时代也是如此。在数据库中存储生日,而不是年龄,因为年龄每天都在变化。

关于MySql - 运行触发器以在指定时间后更改列状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18929830/

相关文章:

mysql - 这里加入查询最好吗?

mysql - 选择语句不返回所有值

php - 根据我的单选按钮选择显示 mysql 表结果

mysql - 未除以数字的行数

java - Java程序中的SQL查询连接问题

MySQL 触发器不工作。可能是什么问题?

mysql - 根据另一个表中的更改自动更新数据库行

mysql - 触发器语法错误

php - 使用 SQLDeveloper 而不是 MySQL 为 php 操作表更新

php - 合并两个 MYSQL 查询