尝试在mysql中创建过程时出现语法错误
我刚刚开始使用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
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
谢谢,这确实奏效了!不过还是有一点脸谱;)