MySQL存储过程变量 - 何时使用哪个

时间:2016-01-15 21:37:37

标签: mysql variables stored-procedures declare

我是MySQL新手。我们什么时候使用声明变量?何时使用未声明的变量(@varTest)

我想知道最佳做法。谢谢。

1 个答案:

答案 0 :(得分:2)

您应始终使用DECLARE创建过程变量以维持适当的范围。在函数内部声明的会话变量可以在函数内部更改,反之亦然。

DROP PROCEDURE IF EXISTS foo;
DELIMITER $

CREATE PROCEDURE foo()
    BEGIN
        DECLARE foo INT;
        SET foo = 123;
        SET @foo = 456;
        SELECT foo, @foo;
    END$

DELIMITER ;

SET @foo = "BAR";
CALL foo();
SELECT @foo;