gpt4 book ai didi

mysql - 如何使用服务器事件更新 2 个 MySQL 表

转载 作者:行者123 更新时间:2023-11-29 18:22:42 26 4
gpt4 key购买 nike

我正在创建一个网站,用于注册用户的简单投票。每个月,注册用户只能投票 5 次。

现在,我将使用 HEIDI SQL 在 2 个表上创建一个服务器事件,这会将每个月的 5 次投票重置为 0

这是我的exe代码:

CREATE EVENT `resetvalue`
ON SCHEDULE
EVERY 1 MONTH STARTS '2017-10-01 00:00:00'
ON COMPLETION PRESERVE
ENABLE
COMMENT 'Im going to reset this every month'
DO BEGIN

UPDATE tbl_users SET statusmonth = 0
UPDATE tbl_poll SET status1 = 0
UPDATE tbl_poll SET status2 = 0

END

这是正确的代码吗?

不幸的是,我问了我的 friend ,然后他给出了另一个如下所示的代码:

DELIMITER $$


CREATE EVENT `dbname`.`resetvalue`
ON SCHEDULE EVERY 1 MONTH
STARTS '2011-06-21 01:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO BEGIN


/(sql_statements)

END$$



DELIMITER ;

我很困惑,哪一个是正确的代码? DELIMiTER 到底是什么?

最佳答案

以下是您的事件与您 friend 的事件的区别。

您的事件将于每月 1 日中午 12:00 进行,事件开始日期为 2017 年 10 月 1 日 00:00:00,但您 friend 的事件将于每月 21 日中午 12:00 进行,并且开始日期为 2011-06-21 01:00:00。

事件完成后,您的事件将不会被删除。但一旦完成,您 friend 的事件代码将被删除。这里两个事件都不会结束,只有运行 5 次或禁用某个事件时才会产生影响。

除此之外我认为都是一样的。有关更多详细信息,您可以引用 MySQL 事件调度程序文档。 https://dev.mysql.com/doc/refman/5.7/en/events-overview.html

关于mysql - 如何使用服务器事件更新 2 个 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46439441/

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