MySQL:分配给选择

时间:2015-08-14 21:52:15

标签: mysql stored-procedures

是否可以在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行

我真的很想使用局部变量。谢谢!

0 个答案:

没有答案