易截截图软件、单文件、免安装、纯绿色、仅160KB

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

关于mysql存储过程变量的问题?变量什么时候前面要加@符号,用declare声明的变量与前者有和区别,我不懂?
@是用来屏蔽错误或警告的,当前面加了@符号后,若此处有错或警告,网页将不显示出来。

前面加@代表会话变量,作用域是当前登录的账户,declare申明的变量只在存储过程内部有效。
通过下面的例子你就能明白:
SQL code:

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'



引用
关于mysql存储过程变量的问题?变量什么时候前面要加@符号,用declare声明的变量与前者有和区别,我不懂?


很对!

引用
@是用来屏蔽错误或警告的,当前面加了@符号后,若此处有错或警告,网页将不显示出来。


刚才引用错了


相关问答:

MySql command line client问题,急!

mySql5.1的 mysql command line client命令窗口每次一点它,它就一闪而过,不会显示了.这是什么问题?
在你的WINDOWS上,先按 [开始], 然后 [运行] ,输入 cmd 然后回车

然后再在这个DOS窗体中, cd C:\Program ......

关于MySQL的查询结果

代码如下:
$sql = "select count(*) from admin";
$result = mysql_query($sql);
$num=mysql_num_rows($result);
echo $num;
为什么不管我的记录有多少条,都是输出1,
我想输出查询的 ......

mysql修改密码问题

问题是这样的,现在有个用户mysql 密码为空,然后我先把它改成123,这样写为什么不能改mysqladmin -u mysql password 123,结果出现mysqladmin: Can't turn off logging; error: 'Access denied; you need t ......

mysql:创建索引出错

大家好,我在创建索引时,出现错误提示,代码如下:

create uique index stu_cou_index on student_info.results (student_id, course_id);
show index from student_info.results;

保存为index ......

mysql中 repair table

在mysql中repair table xxxxx;提示

mysql> repair table recordTbl;
+-----------------+--------+----------+----------------------------------------------+
| Table        ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号