mysql存储变量怎么定义

mysql存储变量怎么定义,第1张

面是一个简单的 存储过程的例子.

DECLARE v_index INT

定义一个 名称为 v_index 的变量, 类型为 INT

MYSQL 变量定义应该只能在 存储过程, 函数里面定义.

不像 Oracle / SQL Server , 一个 BEGIN / END 里面就可以定义/执行了。

mysql>DELIMITER //

mysql>CREATE PROCEDURE TestWhile()

->BEGIN

-> DECLARE v_index INT

->

-> SET v_index = 0

->

-> WHILE v_index <5 DO

->SET v_index = v_index + 1

->SELECT v_index

-> END WHILE

->

->END//

Query OK, 0 rows affected (0.00 sec)

用select...into语句

这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。

重要:

SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:

CREATE PROCEDURE sp1 (x VARCHAR(5)) BEGINDECLARE xname VARCHAR(5) DEFAULT 'bob' DECLARE newname VARCHAR(5) DECLARE xid INTSELECT xname,id INTO newname,xid FROM table1 WHERE xname = xname SELECT newname END

当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。

mysql不是这样用的

sql="select tlr_no,commid from ol_transdetail where tran_date='0605' and tran_time='171721' and seqno='000137'"

mysql_query( conn, sql )

定义一个数据集 MYSQL_RES *res

res=mysql_store_result( conn )

再定义一个行数据变量 MYSQL_ROW row

row=mysql_fetch_row( res )

row[0]is tlr_no

row[1]is commid


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6268131.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-19
下一篇 2023-03-19

发表评论

登录后才能评论

评论列表(0条)

保存