2012-06-13 10 views
2

저는 mysql 저장 프로 시저에 새로운 것이므로 프로 시저 내에서 SHOW SLAVE STATUS의 결과에 액세스 할 수 있어야합니다. 웹을 검색했지만 찾을 수없는 것 같습니다.저장 프로 시저의 저장 프로 시저 표시

CREATE PROCEDURE test() 
BEGIN 
DECLARE a VARCHAR(1000); 
DECLARE cur1 CURSOR FOR SHOW SLAVE STATUS; 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 

OPEN cur1; 

read_loop: LOOP 
    FETCH cur1 INTO a; 
    IF done THEN 
    LEAVE read_loop; 
    END IF; 
END LOOP; 

SELECT a; 

CLOSE cur1; 
END; 

이 다음과 같이 실패 : 이것은 내가하려고했는데 물건의 종류가 같은 어쩌면 커서를 사용하지 않는 (이 작업을 수행하는 다른 방법이있는 경우

ERROR 1064 (42000): 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 'SHOW SLAVE STATUS; 
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 

하나의 행만 반환 됨) 좋을 것입니다.

답변

2

다른 사람이이 문제를 가지고있는 경우를 대비해서.

나는 그 주위에 더러운 길을 발견했다. 필요한 모든 정보를 얻지는 못했지만 시작일뿐입니다.

+-----+-------------+---------------------+---------+---------+-------+-----------------------------------------------------------------------+------------------+ 
| Id | User  | Host    | db  | Command | Time | State                 | Info    | 
+-----+-------------+---------------------+---------+---------+-------+-----------------------------------------------------------------------+------------------+ 
| 1 | system user |      | NULL | Connect | 75212 | Waiting for master to send event          | NULL    | 
| 2 | system user |      | NULL | Connect | 2158 | Has read all relay log; waiting for the slave I/O thread to update it | NULL    | 
+-----+-------------+---------------------+---------+---------+-------+-----------------------------------------------------------------------+------------------+ 
:

information_schema.processlist (또는 SHOW PROCESSLIST)는 I 저장된 프로 시저에서 사용할 수있는 슬레이브 처리를 가지고