MySQL 存储过程变量 - 何时使用哪个
MySQL Stored Procedure Variables - When to Use Which
我是 MySQL 的新手。我们什么时候使用声明的变量?何时使用未声明的变量 (@varTest)
.
我想知道最佳做法。谢谢。
您应该始终使用 DECLARE
创建程序变量以保持适当的范围。在函数外声明的会话变量可以在函数内改变,vice-versa.
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;
我是 MySQL 的新手。我们什么时候使用声明的变量?何时使用未声明的变量 (@varTest)
.
我想知道最佳做法。谢谢。
您应该始终使用 DECLARE
创建程序变量以保持适当的范围。在函数外声明的会话变量可以在函数内改变,vice-versa.
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;