我一直在調試一個SQL存儲過程,它必須根據表C中存在的值(ID)取值(在我的代碼ID和Numb中)形式的表A,然後平方Numb並將其存儲在表B中所有的東西ID,麻木和廣場。 我無法弄清楚這個問題在下面的代碼存儲過程在MySql中不能正常工作?
DELIMITER $$
CREATE PROCEDURE matlab.squaring
BEGIN
DECLARE finish BOOLEAN DEFAULT 0; # <- set up initial conditions
DECLARE square BIGINT(10);
DECLARE ID INT(10);
DECLARE Numb INT (10);
DECLARE id_cur CURSOR FOR
SELECT ID, Numb FROM A WHERE EXISTS (SELECT ID FROM c);
SET @square= @Numb * @Numb
INSERT INTO B
(
ID ,
Numb ,
square
) values (ID , Numb, square);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finish = TRUE;
OPEN id_cur;
the_loop : LOOP
FETCH id_cur INTO ID;
IF finish THEN
CLOSE id_cur;
LEAVE the_loop;
END IF
END LOOP the_loop;
END$$
當我運行存儲過程彈出的錯誤「,似乎是在你的代碼中的一些語法錯誤,請參考MySQL的指導。「
編輯: 一個更多的幫助請如何執行此存儲過程。
不確定,但行SET'@ square = @Numb * @ Numb'沒有分號。可能是這個問題。 – ankurtr