易截截图软件、单文件、免安装、纯绿色、仅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配置文件(my.cnf)

现有的服务器是4核,内存为4G,数据库只使用innodb数据引擎。链接数可能比较高,先设置为500吧,而且数据库中的数据插入、更新和删除操作会非常的频繁。
有没有高人帮忙配置一下my.cnf

这个没有定论的,具体 ......

MySQL发出叫声

MySQL命令输入错误后,执行错误命令发出可怕的叫声
怎么样解决???
那叫声音跟指针读数据读错了,发出一样可以怕的叫声
搞的我不敢用命令行


呵呵!lz真可爱!

方法一,把你的PC上的喇叭拆除
方 ......

C语言 Mysql 疑问

if(mysql_init(&mysql)==NULL)
{
sprintf(ErrMsg,"We are outof Memory");
return(false);
}

if(!mysql_real_connect(&mysql,"localhost","test" ......

MySQL创建存储过程出错

在MySQL5.0中船舰存储过程通不过,提示:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号