0
我试图创建函数,将杀死所有沉睡的连接:MySQL函数杀死熟睡的连接
CREATE DEFINER=`user`@`%` FUNCTION `kill_sleepers`() RETURNS int(11)
BEGIN
DECLARE Id, result INT;
DECLARE done INT DEFAULT FALSE;
DECLARE sleepers CURSOR FOR SELECT Id FROM INFORMATION_SCHEMA.processlist where COMMAND = 'Sleep';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
SET result = 0;
OPEN sleepers;
read_loop: LOOP
FETCH sleepers INTO Id;
IF done THEN
LEAVE read_loop;
END IF;
kill Id;
SET result = result + 1;
END LOOP;
CLOSE sleepers;
RETURN result;
END
但是当我运行它,我得到了“错误代码:1094未知线程ID:0”。如果我把杀入:
IF Id != 0 THEN
kill Id;
SET result = result + 1;
END IF;
它会杀了什么,我犯了什么错误?