@delimiter ++;
CREATE PROCEDURE IC_P_SessionWait()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
DECLARE sid varchar(254);
DELETE from appianData.IC_SessionWait;
INSERT INTO appianData.IC_SessionWait
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where USER='appian' and DB = 'appianData' and COMMAND = 'Query' and HOST LIKE 'vlapnpr001%';
SET i=0;
SELECT COUNT(*) FROM appianData.IC_SessionWait INTO n;
WHILE i<n DO
SELECT ID into sid from appianData.IC_SessionWait LIMIT i,1;
SET @sessionId :=sid;
SET @sql:=CONCAT('Kill ',@sessionId);
PREPARE dynamic_statement FROM @sql;
EXECUTE dynamic_statement;
DEALLOCATE PREPARE dynamic_statement;
SET i = i + 1;
END WHILE;
END; ++
@delimiter ;++
Я получаю сообщение об ошибке:
Ошибка канала связи во время отката (). Разрешение транзакции неизвестно.
В основном я вставляю указанный процесс c в таблицу IC_SessionWait и выполняю L oop, и уничтожаю их с помощью Dynami c Sql. Но это не сработает ...
The error is ' 'Communications link failure during rollback(). Transaction resolution unknown.''
Может кто-нибудь дать мне подсказку?