创建存储过程时遇到问题

Posted

技术标签:

【中文标题】创建存储过程时遇到问题【英文标题】:Trouble creating stored procedure 【发布时间】:2011-02-18 17:39:23 【问题描述】:

我第一次使用存储过程,但甚至无法创建简单的选择!我正在使用 phpMyAdmin,这是我的 SQL:

DELIMITER // 
CREATE PROCEDURE test_select() 
BEGIN 
SELECT * FROM products LIMIT 10; 
END // 
DELIMITER ;

提交之后,我的 localhost 思考了很长时间,最终加载了一个名为 /phpmyadmin/import.php 的没有内容的页面。重新加载 phpMyAdmin 并尝试调用该过程后:

CALL test_select();

我收到“PROCEDURE 不存在”错误。有什么想法吗?

【问题讨论】:

【参考方案1】:

尝试使用phpMyAdmin的delimiter字段,如下截图所示:

只需在查询窗口中输入以下内容:

CREATE PROCEDURE test_select() 
BEGIN 
    SELECT * FROM products LIMIT 10; 
END

另外请注意,一些旧版本的phpMyAdmin存在bug,当你从phpMyAdmin调用包含SELECT语句的存储过程时可能会导致错误。

您可能需要查看以下帖子以进一步阅读:

mysql Stored Procedures not working with SELECT (basic question) How do I write an SP in phpMyAdmin (MySQL)?

此错误仅影响 phpMyAdmin,您仍然可以从其他任何地方调用存储过程。

【讨论】:

问题实际上是我在查询中直接使用了 DELIMITER // 当我应该使用 phpMyAdmin 的 UI 来更改分隔符时。不过,您的第二个链接给了我答案,所以+1。碰巧我也有 phpMyAdmin 错误。呸!

以上是关于创建存储过程时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

Oracle SQL - 无法创建存储过程

存储过程错误“预期时遇到 EOF

oracle 在存储过程中用动态sql创建序列为何会遇到权限不足的问题呢?

在 Java 中调用 SQL Server 存储过程时遇到问题

(转)MySql存储过程遇到的问题

创建存储过程时出错