mysql程序没有使用phpmyadmin创建/工作

Posted

技术标签:

【中文标题】mysql程序没有使用phpmyadmin创建/工作【英文标题】:mysql procedure not getting created/working using 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() 【参考方案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/

希望这会有所帮助。

【讨论】:

以上是关于mysql程序没有使用phpmyadmin创建/工作的主要内容,如果未能解决你的问题,请参考以下文章

通过 phpmyadmin 访问在 mysql 中创建的数据库

phpmyadmin 在创建存储过程时卡住了

无法在 phpmyadmin 中创建程序

phpmyadmin的root密码忘记了怎么办?

Phpmyadmin - Mysql 没有权限

如何使用 phpMyAdmin 自动导出 mySQL 数据库