关于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中将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数据库读取其中的数据, 读取数据表中的Varchar类型的数据,如果是英文能够正常读取出来, 而如果是中文,就会显示为“??”, 如果把varchar类型换成binary类型,Asp.net程序能够正 ......
Java code: 模糊查询书按照书名------------------- java.sql.SQLException: Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like' at com.mys ......
if(mysql_init(&mysql)==NULL) { sprintf(ErrMsg,"We are outof Memory"); return(false); } if(!mysql_real_connect(&mysql,"localhost","test" ......
在mysql中repair table xxxxx;提示 mysql> repair table recordTbl; +-----------------+--------+----------+----------------------------------------------+ | Table   ......