2012-05-12 19 views
1

我希望你能幫助我...無法找出存儲過程,錯誤在END

我知道一些SQL,但我是新來的mySQL ...有這個簡單的查詢我只是無法弄清楚什麼地方錯了:

CREATE PROCEDURE inserttoscrapbookSD 
(owner1 VARCHAR(50), 
poster1 VARCHAR(50), 
Scrap1 VARCHAR(50), 

) 
BEGIN 

INSERT INTO scrapbook (Owner) 

VALUES(owner1) 

END 

我知道有被傳遞了很多的變數,但只用一個變量的時刻,因爲如果它的工作原理爲一體,它會工作對全部。我在ENDVALUES(owner1)的末尾嘗試使用和不使用分號(;),但沒有運氣。它說:

#1064 - 你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本正確的語法使用 接近「)開始的INSERT INTO剪貼簿(所有者)VALUES(owner1)END」在 線6

+0

我固定的錯誤的格​​式;請修正拼寫錯誤(_i_ - > _I_,_u_ - > _you_等) – sarnold

回答

5

您的問題是您需要在定義存儲過程時更改分隔符,這允許您在存儲的proc代碼中使用分號;而無需完成create命令。

試試這個:

delimiter // 

CREATE PROCEDURE inserttoscrapbookSD (
    owner1 VARCHAR(50), 
    poster1 VARCHAR(50), 
    Scrap1 VARCHAR(50) 
) 
BEGIN 

INSERT INTO scrapbook (Owner) 

VALUES(owner1); 

END 
// 

delimiter ;