是否可以在MySQL中使用{strong> 本地 变量的SELECT local_variable := expression FROM [...]
语法,而不是 session 变量?
这有效:
DELIMITER //
DROP PROCEDURE IF EXISTS test_local_variables;
CREATE PROCEDURE test_local_variables()
BEGIN
select @last_name, @last_name := SPECIFIC_NAME from information_schema.ROUTINES limit 10;
END;
//
DELIMITER ;
但是,我无法让MySQL接受这个:
DELIMITER //
DROP PROCEDURE IF EXISTS test_local_variables;
CREATE PROCEDURE test_local_variables()
BEGIN
DECLARE last_name VARCHAR(18);
SET last_name = 'first_value';
select last_name, last_name := SPECIFIC_NAME from information_schema.ROUTINES limit 10;
END;
//
DELIMITER ;
失败并显示错误:
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 要在information_schema.ROUTINES附近使用':= SPECIFIC_NAME附近的语法 限制10; END'在第6行
我真的很想使用局部变量。谢谢!