2012-05-12 14 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 ;