我是MySQL新手。我们什么时候使用声明变量?何时使用未声明的变量(@varTest)
。
我想知道最佳做法。谢谢。
答案 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;