mysql - 无法找出存储过程,在 END 处出错

标签 mysql stored-procedures

我希望你能帮助我...

我确实知道一些 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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') BEGIN INSERT INTO scrapbook (Owner) VALUES(owner1) END' at line 6

最佳答案

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

试试这个:

delimiter //

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

INSERT INTO scrapbook (Owner)

VALUES(owner1);

END
//

delimiter ;

关于mysql - 无法找出存储过程,在 END 处出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10560117/

相关文章:

mysql - 我应该有一个表来获取下拉值还是为每个下拉列表创建多个表

mysql - = 和 := in MySQL 之间的区别

mysql - 检查具有相同 FK 的行中的值

mysql - 如何选择一组行的sum()和另一组的sum()

php - mySQL select with PHP - left join

PHP 无法从 mysqli 语句读取第二个结果集

java - 使用spring存储过程调用oracle存储过程

mysql - 游标获取返回 Null

mysql - #1064 - 检查与您的 MariaDB 服务器版本对应的手册以获得正确的语法?

列数受限的 PHP 可变表大小