我只是嘗試使用事件調度程序殺死mysql作業。 不幸事件調度充滿了錯誤信息我的日誌文件: 無數據 - 零行獲取Mysql事件:如何擺脫無數據零行取出的錯誤?
但我捕捉無數據異常。
爲什麼事件仍會引發錯誤?
CREATE PROCEDURE `kill_run_aways`(IN runtime INT(7), IN username VARCHAR(32))
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE connid INT UNSIGNED;
DECLARE cur1 CURSOR FOR SELECT ID FROM information_schema.PROCESSLIST
WHERE COMMAND ='Query'
AND TIME >= runtime AND USER = username;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO connid;
IF NOT done THEN
select * from information_schema.PROCESSLIST where connid=ID;
KILL connid;
END IF;
UNTIL done END REPEAT;
CLOSE cur1;
END;
謝謝阿爾曼。
感謝您的回答。我剛剛評論了select *語句。情況並沒有改變。過程調用總是拋出警告:1329,事件後來成爲錯誤。 – Arman 2011-05-09 16:29:03
您也可以嘗試爲'SQLWARNING'添加一個空處理程序:'爲SQLWARNING開始END_; DECLARE CONTINUE HANDLER''在您的程序中抑制警告 – a1ex07 2011-05-09 18:34:24
這可能是mysql 5.5 linux brunch中的BUG,事件在錯誤日誌文件中始終寫入錯誤。我沒有看到5.1和Windows上的這種行爲。 – Arman 2011-05-10 16:01:20