2013-12-20 144 views
1

我剛剛開始使用MySql中的過程。我已經閱讀了很多關於如何實現它們的例子,但是我的代碼似乎不起作用。這可能很簡單,在這種情況下,我很抱歉浪費你的時間,對於什麼似乎是問題,我只是有點在暗中。嘗試在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「正確的語法手冊(」用戶id「INT)字符集的UTF8

BEGIN INSERT INTO movieton_frien」在行1

與往常一樣,很樂於助人。

任何提示,技巧或您可能提供的其他幫助將不勝感激! PS:我用DELIMITER語句嘗試了一些變體,但沒有真正做出任何改變。我無法真正瞭解它是否需要,以及它的作用,對這個問題的任何啓發也是受歡迎的!

回答

1

錯誤是專門爲你使用周圍的程序單引號和變量名:

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

在MySQL中,你應該圍繞他們的時候反引號,不是報價:

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

謝謝,這當然有訣竅! 雖然有一點facepalm;);) –

1

反引號名稱不引號或刪除引號。

相關問題