私はmysqlストアドプロシージャにかなり慣れていないので、プロシージャ内からSHOWSLAVESTATUSの結果にアクセスできる必要があります。ウェブを検索しましたが、見つからないようです。これは私が試しているようなものです:
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;
これを行う別の方法がある場合(返される行が1つしかないため、カーソルを使用しない場合もあります)、それはすばらしいことです。