我想在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 ;