易截截图软件、单文件、免安装、纯绿色、仅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查询问题。。。

  我想在mysql中将t_flow_card_detail表中的client_id字段改为外键,引用t_client表中的client_id字段:
  我的sql语句是: alter table t_flow_card_detail add constraint FK_flowcard_client foreig ......

C#读取mysql数据库问题

我使用C#连接mysql数据库读取其中的数据,
读取数据表中的Varchar类型的数据,如果是英文能够正常读取出来,
而如果是中文,就会显示为“??”,

如果把varchar类型换成binary类型,Asp.net程序能够正 ......

求救MySql模糊查询问题

Java code:

模糊查询书按照书名-------------------
java.sql.SQLException: Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'
at com.mys ......

C语言 Mysql 疑问

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

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

mysql中 repair table

在mysql中repair table xxxxx;提示

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