具有多个更新的MySQL过程

时间:2015-07-06 10:18:22

标签: php mysql stored-procedures

有谁知道这里出了什么问题? : - 以下代码适用于我的本地服务器 - 使用MySQL工作台执行: -

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `namechange`(IN oldname VARCHAR(20),IN newname VARCHAR(20))
BEGIN
UPDATE liquidfinger.users SET username = newname WHERE username = oldname LIMIT 1;
UPDATE liquidfinger.markers SET username = newname WHERE username = oldname;
UPDATE liquidfinger.photos SET user = newname WHERE user = oldname;
UPDATE liquidfinger.mail SET to_name = newname WHERE to_name = oldname;
UPDATE liquidfinger.mail SET from_name = newname WHERE from_name = oldname;
END$$
DELIMITER ;

但我无法在我的网站上创建程序,由GoDaddy托管并使用phpMyAdmin。 我收到的错误信息是: -

  

" MySQL说:#1064 - 你的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   语法使用近< UPDATE liquidfinger.markers SET username = newname   WHERE username = oldname; UP'在第3行"

第二次更新始终是问题开始的时刻 - 因此它不喜欢多次更新。 GoDaddy MySQL服务器版本是:-Server版本:5.5.41-cll-lve - MySQL社区服务器(GPL) 最新的MySQL版本是5.6.25

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

好的,我已经开始工作了。我之前尝试过在phpMyAdmin中使用SQL选项卡但它没有用,但我再次尝试省略“DEFINER =。”。它起作用了。所以我只能得出结论phpMyAdmin中存在某种错误(?)但之前我曾尝试使用MySQL工作台导出和导入sql文件 - 这也不起作用(?) 案件结案 - 我不确定我是否应该勾选自己的答案?