【发布时间】:2013-08-08 14:40:32
【问题描述】:
当我使用命令行 (mysql.exe) 执行时,以下代码可以正常工作,但当我在 phpmyadmin 中使用 SQL Query 或使用 ScriptRunner (Java) 执行时不正确。
错误:错误语法执行DELIMITER $$
我该如何解决这个问题?
-- Procedures
--
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `upload_photo`(
IN owner_id int, IN photo_name text, IN photo_url text, IN thumbnail text
)
begin
declare inserted_id int unsigned default 0;
INSERT INTO photo(`owner_id`, `photo_name`, `photo_url`, `thumbnail`) VALUES(owner_id, photo_name, photo_url, thumbnail);
set inserted_id = last_insert_id();
select * from photo where photo_id = inserted_id;
end$$
--
DELIMITER ;
【问题讨论】:
-
使用不同的分隔符,也许?
-
@MikeW:感谢您的回复。但我得到了同样的错误。 :D
-
this thread的可能重复
-
并非所有版本的 phpMyAdmin 都能识别分隔符命令;相反,可以使用 SQL 输入框下方的分隔符输入框。 See here
-
我个人并不了解 ScriptRunner,但我认为它也不知道
DELIMITER关键字。但是你不能在Runscript之前用setDelimiter("$$", true)设置分隔符并省略DELIMITER关键字吗?
标签: mysql