MySQL 比较每一行的日期字段并根据 curdate() 进行更新的存储过程

MySQL Stored Procedure that compares each row's date field and updates based on curdate()

这可能是一个菜鸟问题,但我尝试用谷歌搜索这个问题,但没有找到任何解决方案(我认为)。无论如何,我需要比较从 mysql table 到当前日期的一行中的日期,并根据结果更新行。我制作了一个存储过程,每 x 分钟就会被一个事件调用。这是我的 sp 代码:

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:在最后一个词后添加 space,仍然出现以下错误.. :(

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '//' at line 23

delimiter $$
create procedure return7 ()
BEGIN
  select 7;
END
$$

调用 return7();

您可以自由重复使用此代码