创建MySQL存储过程

创建MySQL存储过程,mysql,stored-procedures,aqua-data-studio,Mysql,Stored Procedures,Aqua Data Studio,我正在使用Aqua Data Studio 20.6创建一个MySQL存储过程。以下是我的过程,我将其命名为sp_GetObjIDByProType: ( IN prono char(15), IN imgtype char(8), OUT objid bigint ) BEGIN SELECT ObjectID INTO objid FROM images WHERE ProNumber = prono AND DocType = imgtype LIMIT 20; END 尝试创建

我正在使用Aqua Data Studio 20.6创建一个MySQL存储过程。以下是我的过程,我将其命名为sp_GetObjIDByProType:

( IN prono char(15), IN imgtype char(8), OUT objid bigint )
BEGIN
    SELECT ObjectID INTO objid FROM images WHERE ProNumber = prono AND DocType = imgtype LIMIT 20;
END
尝试创建存储过程时,会收到以下错误消息:

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 'IN imgtype char(8) )
( OUT objid bigint )
BEGIN
    SELECT ObjectID INTO objid F' at line 3
但是,似乎创建任务实际上是成功的
(). 我可以在另一个窗口()中查看和更改创建的存储过程。这是否意味着存储过程的创建实际上是成功的,还是我所做的有什么问题?

看起来您的过程是创建的。但是,查询中的
限制20
没有意义。您将在
OUT
参数中返回所选的
ObjectID
,该参数只能保存一个值。然而,您将查询限制为20行


如果希望最多返回20行,请将行作为结果集返回(省去out参数和
到objid
),或将行限制为一行。

请注意:错误消息中的代码本身及其citate不同。@Akina感谢您的回复。我注意到了,你知道为什么会有不同吗?我尝试创建了一些其他存储过程,但没有出现类似的错误。忽略第一个错误安全吗?谢谢,这是一个很好的捕获!