我正在使用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
答案 0 :(得分:1)
我不知道为什么会出错,但我可以看到如何完全消除该变量的使用(鉴于所显示的代码):
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;
答案 1 :(得分:0)
感谢大家的帮助。
经过大量调查后没有运气。我决定使用Insert Ignore和Replace代替上面的脚本。