MySql存储过程语法错误?

标签 mysql

我正在使用 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;

关于MySql存储过程语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27567952/

相关文章:

java - Spring Boot JPA 使用 Hibernate 在 TABLE 中插入大写名称

PHP使用mysql插入数据

mysql与c程序

php - MYSQL 和 PHP INSERT NULL 值

php - MySQL 查询中的 .ipToCountry 不起作用

mysql - 我有主从表,我想复制它们

MySQL 工作台错误 1064 错误

c++ - 使用嵌入式 mysql C++ 创建触发器

php - 如何使这个查询发生

mysql - CakePHP,不加入或排除加入?