Mysql Mariadb:赋值运算符(:=)不使用局部变量
Mariadb知识库解释了赋值运算符(:=)同时处理用户定义变量和局部变量 但当我做一些测试时,例如:Mysql Mariadb:赋值运算符(:=)不使用局部变量,mysql,variables,stored-procedures,mariadb,variable-assignment,Mysql,Variables,Stored Procedures,Mariadb,Variable Assignment,Mariadb知识库解释了赋值运算符(:=)同时处理用户定义变量和局部变量 但当我做一些测试时,例如: delimiter // CREATE or replace PROCEDURE tst_PS_now() BEGIN declare varnow datetime(3); set varnow = (select now()); select 'result: ' ,varnow; END; // delimiter ; mysql:root> call tst_PS_now(
delimiter //
CREATE or replace PROCEDURE tst_PS_now()
BEGIN
declare varnow datetime(3);
set varnow = (select now());
select 'result: ' ,varnow;
END;
//
delimiter ;
mysql:root> call tst_PS_now() ;
+----------+-------------------------+
| result: | varnow |
+----------+-------------------------+
| result: | 2020-10-26 16:13:44.000 |
+----------+-------------------------+
例2:
delimiter //
CREATE or replace PROCEDURE tst_PS_now()
BEGIN
declare varnow datetime(3);
select varnow:=now();
select 'result: ' ,varnow;
END;
//
delimiter ;
错误1064(42000):您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解要在“:=now()附近使用的正确语法;在4号线
在第二个示例中,赋值应该与我的局部变量一起使用
我真的需要在存储过程中使用这种赋值。
我该怎么修?有什么想法吗?您的第一个示例没有显示运算符。请尝试在运算符周围添加空格。所以
varnow:=now()代码>可以很好地使用SET而不是select…这是您在第一个sp中使用的。从我所看到的情况来看,您可以将..选择到本地(声明的)变量中,或者对其进行设置,但是您不能使用select:=或select=tryedvarnow:=now()
为其赋值,并且无法工作。。。。。。似乎:=不起作用,尽管在Mariadb知识库中进行了解释。