我正在尝试更改 MySQL 命令分隔符,以便我可以创建一个包含多个命令的过程。但是,分隔符命令似乎无法在 MySQL 5.1.47 上识别。我在 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
是否有它不起作用的原因,或者是否有替代方法来完成同样的事情(创建具有多个查询的过程)?
DELIMITER
不是 MySQL 命令。这是您的 MySQL 客户端需要支持的命令。我正在运行不支持它的 PHPMyAdmin 2.8.2.4。当我升级到最新版本(目前为 3.4.9)时,它工作得很好。你的MySQL版本与DELIMITER
和支持与否无关
另请注意,某些客户端可能存在
DELIMITER
区分大小写的错误,其中只有小写 delimiter
或大写 DELIMITER
有效。
您不需要分隔 DELIMIT 语句
DELIMITER //
procedure here etc
DELIMITER ;
完全按照 MySQL 文档中的 “定义存储程序”。
而且如果你能控制版本,最新的是5.5.20。为什么不用那个?
编辑:
错误消息表明前面的语句中有错误......如果这似乎不能强制它
; /* <- force previous statement termination */ DELIMITER //
procedure here etc
DELIMITER ;