关于mysql存储过程变量的问题?

pdq315 2009-10-09 12:47:10
关于mysql存储过程变量的问题?变量什么时候前面要加@符号,用declare声明的变量与前者有和区别,我不懂?
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
战斗生活 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zijian85 的回复:]
@是用来屏蔽错误或警告的,当前面加了@符号后,若此处有错或警告,网页将不显示出来。
[/Quote]

刚才引用错了
战斗生活 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 pdq315 的回复:]
关于mysql存储过程变量的问题?变量什么时候前面要加@符号,用declare声明的变量与前者有和区别,我不懂?
[/Quote]

很对!
阿_布 2009-10-09
  • 打赏
  • 举报
回复
前面加@代表会话变量,作用域是当前登录的账户,declare申明的变量只在存储过程内部有效。
通过下面的例子你就能明白:

mysql> create procedure pro1()
-> begin
-> declare d int;
-> select max(id) into d from o;
-> set @dd=0;
-> select max(id) into @dd from o;
-> end;
-> //
Query OK, 0 rows affected (0.05 sec)

mysql> call pro1;
-> //
Query OK, 0 rows affected (0.00 sec)

mysql> select @dd;
-> //
+------+
| @dd |
+------+
| 2 |
+------+
1 row in set (0.00 sec)

mysql> select d//
ERROR 1054 (42S22): Unknown column 'd' in 'field list'
zijian85 2009-10-09
  • 打赏
  • 举报
回复
@是用来屏蔽错误或警告的,当前面加了@符号后,若此处有错或警告,网页将不显示出来。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧