MySQL事件';更新列';
我有一个名为“memo”的表,结构如下:MySQL事件';更新列';,mysql,sql,events,Mysql,Sql,Events,我有一个名为“memo”的表,结构如下: +-------+-------------+-----------------------+--------+-------------------+ | id | memo | date | status | valid until | +-------+-------------+-----------------------+----------------------------
+-------+-------------+-----------------------+--------+-------------------+
| id | memo | date | status | valid until |
+-------+-------------+-----------------------+----------------------------+
| 1 | title1 | 2013-01-19 03:14:07 | 0 | 2013-01-19 |
| 2 | title2 | 2013-01-19 04:14:07 | 0 | 2013-01-20 |
| 3 | title3 | 2013-01-19 05:14:07 | 0 | 2013-01-23 |
| 4 | title4 | 2013-01-19 06:14:07 | 1 | 2013-01-25 |
| 5 | title5 | 2013-01-19 07:14:07 | 1 | 2013-01-27 |
+-------+-------------+-----------------------+--------+-------------------+
我在这里担心的是,当备忘录达到到期日(即有效期至)时,状态应更改为0。
如何在MySQL触发器中执行此操作?
任何想法都会很棒 您需要创建一个
事件来完成此任务。触发器不起作用,因为它们与整行关联,并在插入、删除或更新时执行。
写一个预定的事件,每小时执行一次(运行频率由您决定),并检查备忘录是否有效。如果已过期,则将相应的状态
条目设为1
这是一个开始
非常感谢你澄清我的担忧!现在我可以有效地开始了。查看编辑!我已经为你添加了示例代码,你是一个救星!谢谢你,保持精彩!
CREATE EVENT myevent ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
UPDATE memo SET status = 1 where sysdate()> valid until;