繁体   English   中英

MySql存储过程语法错误?

[英]MySql stored procedure syntax error?

我正在使用MySql并在存储过程中编写以下代码:

  SET @label_id_configuration = 0;
  IF NOT (SELECT count(1) FROM `system_labels` WHERE  `name` = 'configuration') THEN
    SELECT @label_id_configuration := Max(`label_id`) + 1 FROM   `system_labels`;
    INSERT INTO `system_labels` (`label_id`, `name`) VALUES (@label_id_configuration, 'Configuration');
  END IF;

它在我的本地系统上运行良好。 但是在构建服务器上,它失败。 存储过程的其余部分运行良好,这意味着我们没有权限,数据库,表存在问题。

谁能给我提示以解决服务器上收到的错误消息?

Error on or near line 151: error in SQL script data_update.sql: @label_id_configuration:=`label_id` 6   

我不知道为什么会出错,但是我可以看到如何完全消除该变量的使用(给出显示的代码):

IF NOT EXISTS(SELECT * FROM `system_labels` WHERE `name` = 'configuration') THEN
    INSERT INTO `system_labels` (`label_id`, `name`)
    SELECT Max(`label_id`) + 1, 'Configuration' FROM `system_labels`
END IF;

感谢你的帮助。

经过大量调查,没有任何运气。 我决定使用“插入忽略和替换”而不是上面的脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM