我正在尝试更改MySQL命令分隔符,以便我可以创建一个包含多个命令的过程。但是,在MySQL 5.1.47上似乎无法识别delimiter命令。我在MySQL 5.0.91上测试过,它在那里工作。
DELIMITER //;
DELIMITER ;//
在两种情况下,我都试图从phpmyadmin运行它。使用5.0.91不是一个选项,因为我需要使用事件(CREATE EVENT
)。
错误讯息:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //' at line 1
是否存在无法正常工作的原因,或者是否有其他方法可以完成同样的事情(创建具有多个查询的过程)?
答案 0 :(得分:19)
DELIMITER
不是MySQL命令。这是MySQL客户端需要支持的命令。我正在运行PHPMyAdmin 2.8.2.4,它不支持它。当我升级到最新版本(目前为3.4.9)时,它运行得很好。您的MySQL版本与DELIMITER
无关,是否支持。
答案 1 :(得分:3)
您无需分隔DELIMIT语句
DELIMITER //
procedure here etc
DELIMITER ;
正如MySQL文档中的"Defining Stored Programs"一样。
如果你可以控制版本,最新的是5.5.20。为什么不使用它?
编辑:
错误消息指示前一个语句中的错误...如果这似乎不能强制它
; /* <- force previous statement termination */ DELIMITER //
procedure here etc
DELIMITER ;