MySQL限制中的变量

时间:2011-11-19 16:27:14

标签: mysql

我想在MySQL限制中使用变量,但它无效。为什么? (如果我将变量更改为数字,那就没关系。)

MySQL Error> #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 '@records-leaveErr; END IF; END IF; END' at line 9

我的代码:

DELIMITER //
    CREATE PROCEDURE `deleteOldErrRecords`(backTime int(11), leaveErr int(11))
    BEGIN
      SELECT @records:=COUNT(*) FROM `sys_proc_err`;
      IF @records > leaveErr THEN
        SELECT @actRecords:=COUNT(*) FROM `sys_proc_err` WHERE `time` > (NOW()-backTime); 
        IF @actRecords > leaveErr THEN
          DELETE FROM `sys_proc_err` WHERE `time` < (NOW()-backTime);
        ELSE
          DELETE FROM `sys_proc_err` ORDER BY `id` ASC LIMIT @records-leaveErr;
        END IF;
      END IF;
    END //
DELIMITER ;

1 个答案:

答案 0 :(得分:4)

仅支持使用变量作为限制值since 5.5.6+