ストアドプロシージャを作成しようとしていますが、phpmyadminに構文エラーがありますがエラーは表示されません。ストアドプロシージャを作成する際にMySQL構文のエラーが発生する
1064 - SQL構文に誤りがあります。ラインで「
フォーラムFROM SELECT ForumIDされるカーソルのCUR_ID_FORUM」近くで使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください3
delimiter //
CREATE PROCEDURE updateForumAdmin (IN user_id INT, IN previous_role INT,IN new_role INT)
BEGIN
CURSOR CUR_ID_FORUM
IS
SELECT ForumID FROM Forum //
IF(
previous_role=1,
DELETE ForumManager WHERE ModuleID=3 AND ModuleEntityID=user_id AND IsDirect=0,
SELECT ForumID FROM Forum
FOR REC_ID_FORUM IN CUR_ID_FORUM
LOOP
INSERT ForumManager (ForumID,ModuleID,ModuleEntityID,ModuleRoleID,AddedBy,IsDirect) VALUES (REC_ID_FORUM,3,user_id,11,0,0)
END LOOP //
)
END //
delimiter ;
私の更新されたコード:
delimiter //
CREATE PROCEDURE updateForumAdmin (IN user_id INT, IN previous_role INT,IN new_role INT)
BEGIN
DECLARE REC_ID_FORUM INT(11) //
DECLARE CUR_ID_FORUM CURSOR FOR SELECT ForumID FROM Forum //
IF(
previous_role=1,
DELETE ForumManager WHERE ModuleID=3 AND ModuleEntityID=user_id AND IsDirect=0,
SELECT ForumID FROM Forum
FOR REC_ID_FORUM IN CUR_ID_FORUM
LOOP
FETCH CUR_ID_FORUM INTO REC_ID_FORUM //
INSERT ForumManager (ForumID,ModuleID,ModuleEntityID,ModuleRoleID,AddedBy,IsDirect) VALUES (REC_ID_FORUM,3,user_id,11,0,0)
END LOOP //
)
END //
delimiter ;
とphpmyadminの更新されたエラー:
1064 - SQL構文に誤りがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文が行末にある ''の近くにあるようにしてください。
このエラーは、それが何であるかを示しています。「CURSOR」を開始した部分が好きではありません。このページでこのコードを取得した場所https://msdn.microsoft.com/en-gb/library/ms180169.aspxカーソル名カーソルをDECLAREする必要があります –