【问题标题】:mysql procedure not getting created/working using phpmyadminmysql程序没有使用phpmyadmin创建/工作
【发布时间】:2011-06-06 23:22:32
【问题描述】:

我使用 phpmyadmin + mysql 版本 5.0.77 创建了以下存储过程,但没有按预期工作.....并显示以下错误。

存储过程:

delimiter //
create procedure myProc()
begin
  select name from main_contacts;
end //
delimiter;
错误

您的 SQL 查询中似乎有错误。
下面的 MySQL 服务器错误输出,
如果有的话,也可以帮助您诊断问题

错误:

未知标点字符串 @ 11
STR://
SQL: 分隔符 //
创建过程 myProc()
开始
从 main_contacts 中选择名称
SQL查询:

delimiter // 创建过程 myProc() 从 main_contacts 开始选择名称

MySQL 说:


#1064 - 您的 SQL 语法有错误;
检查与您的 MySQL 服务器版本相对应的手册
在 'delimiter // 附近使用正确的语法
创建过程 myProc()
开始
从第 1 行的 main_contacts' 中选择名称

【问题讨论】:

  • 你用的是什么mysql版本? SELECT VERSION()

标签: mysql stored-procedures phpmyadmin


【解决方案1】:

您需要在分隔符后留出空格。所以替换delimiter; delimiter ; 或者你可以试试,

delimiter //
    create procedure myProc()
    begin
      select name from main_contacts;
    end //
    delimiter ;

【讨论】:

  • 诀窍是添加最后一行:“delimiter ;”。如果省略该行,则会出现“未知标点字符串”错误。我在 PHPMyAdmin v4.2.5 中有这个 你也可以使用另一个客户端,比如 MySQL WorkBench,它不会受到这个错误的影响(?)。
  • 在使用 PHPMyAdmin v4.2.5 之后,我可以说它非常有问题。我收到诸如“错误”、“未知标点字符串”之类的错误或没有错误,但我的程序/函数没有保存,只需使用 MySQL WorkBench。像魅力一样工作。
【解决方案2】:

问题是您的 MySQL 客户端不喜欢 DELIMITER 命令。如果您使用的是旧版本的 phpMyAdmin,请使用新版本,因为该问题已在 phpMyAdmin 中解决。如果您可以使用 MySQL 客户端 mysql,那也应该可以解决您的问题。

如果您无法使用旧版本的 phpMyAdmin,并且不能或不想使用 mysql,请在 Nth Design 网站上查看 Nate Smith 的建议...

http://blog.nth-design.com/2009/02/25/creating-sp-in-phpmyadmin/

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 2014-09-29
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    相关资源
    最近更新 更多