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

标签 mysql variables stored-procedures declare

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

我想知道最佳实践。谢谢。

最佳答案

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

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 存储过程变量 - 何时使用哪个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820279/

相关文章:

php - 为什么这个简单的 mysql_query/SELECT/echo 会得到 "Array"作为输出?

php - mysql select 使用 inet_ntoa 出现 sql 语法错误

javascript - 在 jaydata : pass variables to filter, 中只有全局有效

java - 从 Java 中的 Oracle 存储过程获取结果集

MySQL 分隔符不工作

mysql - 当表之间存在多对多关系时,获取表 1 中多个表 2 记录所共有的记录

PHP 表单发送邮件给所有用户而不是一个

linux - 如何在 linux bash/shell 中对图像进行 base64 编码

python - 是否有 django 习惯用法在数据库中存储与应用程序相关的变量?

mysql - 数据库更新查询?