0
我有以下代碼來限制在MySQL中的執行時間,但它不工作。 有人幫我解決。如何限制MySQL中的執行時間?
delimiter //
CREATE PROCEDURE `classicWatches`.kill_long_running_queries()
BEGIN
DECLARE process_id BIGINT;
DECLARE finished INT DEFAULT 0;
DECLARE kill_process_id CURSOR FOR SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND = 'Query' AND TIME > 5; # only for 5 seconds just testing whether it works or not
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
OPEN kill_process_query;
loop_loop: LOOP
FETCH kill_process_id INTO process_id;
IF process_id >=1 THEN
KILL QUERY process_id ; # Here showing error in mysql workbench but don't know what error
END IF ;
IF finished THEN
LEAVE loop_loop;
END IF;
END LOOP loop_loop;
CLOSE kill_process_id;
END //
delimiter ;
CREATE EVENT kill_long_running_queries
ON SCHEDULE EVERY 10 SECOND
DO CALL `classicWatches`.kill_long_running_queries();
我要殺死這些都佔用更多的時間.Suppose這一進程的所有進程時間超過最大時間限制。那麼它應該被自動殺死。 –
@SRSharma:根據你想要達到的目標,你可以使用'KILL CONNECTION'或'KILL QUERY'。請參見[13.7.6.4 KILL語法](http://dev.mysql.com/doc/refman/5.6/en/kill.html)。 – wchiquito
我想殺死查詢,但我不知道這段代碼有什麼問題。你能改正它嗎?如果可以的話? –