【问题标题】:Stored procedure does not exist, even after creating it存储过程不存在,即使在创建之后
【发布时间】:2011-09-06 04:10:25
【问题描述】:

我正在尝试创建一个 mysql 存储过程。我已经使用以下代码成功创建了一个程序:

delimiter $$
CREATE PROCEDURE `myprocedure` (IN
 var1 DATE) 
BEGIN 
<---code--> 
END

还有

SHOW CREATE PROCEDURE myprocedure

显示我创建的过程。

但调用 myprocedure(2011-05-31);

显示以下错误

#1305 - PROCEDURE db.myprocedure does not exist

db 是我创建过程的数据库

我做错了什么?

谁能帮我解决这个问题?

【问题讨论】:

  • mysql版本好吗?? MySQL 5.0 introduced Stored Procedures
  • 需要存储过程的全名吗?还是您指的是正确的数据库? :P
  • AM 使用 MYSQL 5.1.30,我检查了数据库名称,这里指的是正确的数据库名称。
  • 您是否在您期望的数据库中创建存储过程?
  • 是的,我已经在正确的数据库中创建了程序。

标签: mysql database stored-procedures stored-functions


【解决方案1】:

请查看以下示例,特别注意分隔符的使用和日期输入参数的引用。

drop procedure if exists my_procedure;

delimiter #

create procedure my_procedure 
(
in p_start_date date
) 
begin

-- do something...
select p_start_date as start_date; -- end of sql statement

end# -- end of stored procedure block

delimiter ; -- switch delimiters again

call my_procedure('2011-01-31');

+------------+
| start_date |
+------------+
| 2011-01-31 |
+------------+
1 row in set (0.00 sec)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2014-05-21
    • 2016-11-09
    • 2017-06-19
    • 1970-01-01
    相关资源
    最近更新 更多