这可能是一个noob问题,但我尝试使用谷歌搜索这个问题,我没有找到任何解决方案(我认为)。无论如何,我需要将mysql表中的一行日期与当前日期进行比较,并根据结果更新行。我创建了一个存储过程,每隔x分钟就会被一个事件调用。这是我的代码:
delimiter //
CREATE PROCEDURE checkPromoValidity()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE id INT;
DECLARE lvn_status INT;
DECLARE lvn_validUntil DATE;
DECLARE cur1 CURSOR FOR SELECT promos.PROMO_NUMBER,promos.VALID_UNTIL,promos.status FROM MDCH_NEW.promos;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open cur1;
check_loop: LOOP
fetch cur1 into id,lvn_validUntil,lvn_status;
IF done THEN
LEAVE check_loop;
END IF;
IF (lvn_validUntil > CURDATE()) THEN
update mdch_new.promos set MDCH_NEW.PROMOS.status = 0 where mdch_new.promos.PROMO_NUMBER = id;
END IF;
end LOOP;
close cur1;
END //
MDCH_NEW = database name
PROMOS= table name
编辑:我改变了我的分隔符//只是为了看
edit2:在最后一个单词后添加空格,仍然得到以下错误.. :(
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第23行
附近的'//'附近使用正确的语法
答案 0 :(得分:0)
delimiter $$
create procedure return7 ()
BEGIN
select 7;
END
$$
调用return7();
您可以自由重复使用此代码