1

我希望你能帮助我...

我确实知道一些 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 服务器版本相对应的手册,以在第 6 行的“) BEGIN INSERT INTO 剪贴簿(所有者)值(所有者1)结束”附近使用正确的语法

4

2 回答 2

6

您的问题是您需要在定义存储过程时更改分隔符,这允许您;在存储过程代码中使用分号而无需完成创建命令。

试试这个:

delimiter //

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

INSERT INTO scrapbook (Owner)

VALUES(owner1);

END
//

delimiter ;
于 2012-05-12T00:51:51.470 回答
3

尝试删除最后一个参数后的逗号

于 2012-05-12T00:40:10.710 回答