mysql - 尝试使用 ":="将值分配给 select 中的过程变量时出错

标签 mysql stored-procedures

我有以下存储过程代码:

BEGIN
DECLARE procvar INT;
SELECT @uservar := portid();
SELECT procvar := portid();
END

我收到第二个 SELECT 语句的语法错误。

因此允许对用户 session 变量 (@uservar) 进行赋值,但尝试将值赋给本地声明的变量 (procvar) 会引发语法错误。

我在 := 运算符的文档中找不到对此的任何直接引用 - 所有示例都只使用 @vars。谁能解释第二个 SELECT 语句违反的语法规则是什么?

最佳答案

将此 DECLARE XX INT; 更改为 set @XX = 0;

关于mysql - 尝试使用 ":="将值分配给 select 中的过程变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42569406/

相关文章:

mysql - 如何在 utf8mb4_general_ci 编码的数据库中包含表情符号? (MySQL问题)

mysql存储过程不接受外键约束

java - 用于删除 Postgresql 中逻辑冗余条目的 Cron 作业

sql - 如何从没有输出参数的存储过程返回值

mysql - 如何将mysql数据库同步到外部数据源

MySQL - 连接 2 个表

c# - C# datagridview 中的存储过程而不是列表框

事务中的 MySQL 回滚

php - MySQL 错误 #1052 from 子句中的列不明确

mysql - 根据当前时间创建 View (MySql)