浅谈MySQL存储过程中declare和set定义变量的区别

浅谈MySQL存储过程中declare和set定义变量的区别,第1张

在存储过程中常看到declare定义变量和@set定义的变量。简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量。

1、declare定义的变量类似java类中的局部变量,仅在类中生效。即只在存储过程中的begin和end之间生效。

2、@set定义的变量,叫做会话变量,也叫用户定义变量,在整个会话中都起作用(比如某个应用的一个连接过程中),即这个变量可以在被调用的存储过程或者代码之间共享数据。

declare为对变量进行声明,声明必须制定变量的数据类型,只能写在过程的前面

set是对变量赋值,可以放在过程的任何地方

对没有declare声明过的变量赋值,该变量必须以加上@号,否则会报错

DECLARE a INT -- 如果放在下面语句之后,会报错

SET a = (SELECT id FROM tb) -- 如果没有前面的声明,会报错

SET @b = (SELECT title FROM tb)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/6740893.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存