尝试在mysql中创建过程时出现语法错误

尝试在mysql中创建过程时出现语法错误,mysql,sql,Mysql,Sql,我刚刚开始使用MySql中的过程。我已经阅读了很多关于如何实现它们的示例,但是我的代码似乎不起作用。这可能是愚蠢的简单,在这种情况下,我很抱歉浪费你的时间,我只是有点不知道是什么问题 create PROCEDURE 'InsertFriends'('userId' int) CHARSET utf8 BEGIN insert into movieton_friends (prim,sec) select M.usr_id, U.ID from movieton_friends_ma

我刚刚开始使用MySql中的过程。我已经阅读了很多关于如何实现它们的示例,但是我的代码似乎不起作用。这可能是愚蠢的简单,在这种情况下,我很抱歉浪费你的时间,我只是有点不知道是什么问题

create PROCEDURE 'InsertFriends'('userId' int) CHARSET utf8

BEGIN
insert into movieton_friends (prim,sec)
select 
    M.usr_id, U.ID
from movieton_friends_map as M
inner join movieton_users as U
    on M.fb_id = U.fb_id
left join movieton_friends as F
    on F.usr_id = M.usr_id
    and (   (M.usr_id = F.Prim and U.usr_id = F.Sec) 
        or  (M.usr_id = F.Sec and U.usr_id = F.Prim))
where M.usr_id = userId and F.prim is NULL;
END
PhpMyadmin/Mysql向我抛出以下错误:

您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在“InsertFriends”(“userId”int)字符集utf8附近使用的正确语法

开始 插入第1行的movieton_frien'中

和往常一样,我非常乐于助人

我们将非常感谢您提供的任何提示、技巧或其他帮助


PS:我尝试了DELIMITER语句的几种变体,但没有真正起到任何作用。我真的不明白它是否需要,它的目的是什么,关于这个问题的任何启示也是受欢迎的

名称的反勾号不是引号或删除引号。

此错误专门针对您在过程和变量名称周围使用的单引号:

create PROCEDURE 'InsertFriends'('userId' int) CHARSET utf8
在MySQL中,应在反勾选时将其括起来,而不是引号:

create PROCEDURE `InsertFriends`(`userId` int) CHARSET utf8

谢谢,这确实奏效了!不过还是有一点脸谱;)