创建存储过程时遇到问题
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创建序列为何会遇到权限不足的问题呢?