【发布时间】:2019-06-10 17:01:01
【问题描述】:
我在 MySql 中创建事件时遇到问题。
前几天我买了一个服务器,把我页面的所有信息,包括数据库都加进去了。
我想在名为 NEWAHORROSH 的某个表中每 24 小时执行一次 UPDATE
包含数据的:
CREATE TABLE newahorrosh (
id int not null auto_increment primary key,
user_id int not null,
capital_real float (11,2) not null,
interests float (11,2) not null,
capital_total float (11,2) as (capital_real + interest)
);
我的活动代码是:
DELIMITER |
CREATE EVENT CalculoIntereses
ON SCHEDULE EVERY 24 HOUR
STARTS CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
ENDS CURRENT_TIMESTAMP + INTERVAL 1 YEAR
DO
BEGIN
IF (newahorrosh.capital_real> 1 AND newahorrosh.capital_real <500) THEN
UPDATE newahorrosh SET interests = interests + ((capital_real * 3 * 1/36000));
ELSEIF (newahorrosh.capital_real> 5001 AND newahorrosh.capital_real <1000) THEN
UPDATE newahorrosh SET interests = interests + ((capital_real * 4 * 1/36000));
ELSEIF (newahorrosh.capital_real> 1001 AND newahorrosh.capital_real <5000) THEN
UPDATE newahorrosh SET interests = interests + ((capital_real * 5 * 1/36000));
ELSEIF (newahorrosh.capital_real> 5001 AND newahorrosh.capital_real <15000) THEN
UPDATE newahorrosh SET interests = interests + ((capital_real * 6 * 1/36000));
ELSEIF (newahorrosh.capital_real> 15001) THEN
UPDATE newahorrosh SET interests = interests + ((capital_real * 7 * 1/36000));
END IF;
END |
DELIMITER;
该事件被完美地创建,没有错误,但是当到达必须更新信息的时间时,它不会被执行。我已经注意到我的 phpmyadmin 中的活动日程安排已开启。
我重复一遍,它在创建事件时不会给我带来错误,但是当我在我的 phpmyadmin 中打开我的事件时,它会在我的代码中显示 X 个错误
非常感谢您的帮助,因为我有将近 2 周的时间来解决这个问题。千感谢您的宝贵时间。
【问题讨论】:
-
您发布的代码不反映您使用的任何标签。
-
@FunkFortyNiner 感谢您的评论好友。我已经更新了我的问题。
-
"事件被完美创建,没有错误,但是当信息必须更新的时间到来时,它不会被执行。"你读过关于
CREATE EVENT的MySQL 手册吗? “此语句创建并安排一个新事件。除非启用 Event Scheduler,否则该事件不会运行”有关检查 Event Scheduler 状态并在必要时启用它的信息,请参阅第 24.4.2 节,@987654322 @." -
@RaymondNijland 感谢您的评论:“...我已经注意到我的 phpmyadmin 中的事件时间表已开启”。
-
您确定您用来创建活动的 MySQL 用户也具有活动中使用的 newahorrosh 表的 UPDATE 权限吗?此外,您可能还想添加
ON COMPLETION PRESERVE,否则该事件在运行时将是一次性事件。
标签: mysql events stored-procedures phpmyadmin