1 示例如下:
delimiter $
drop procedure if exists curdemo $
CREATE PROCEDURE curdemo(pid int)
BEGIN
DECLARE notfound INT DEFAULT 0 #定义一个辅助变量用于判断
DECLARE a int #定义游标输出值赋予的变量
DECLARE cur1 CURSOR FOR SELECT id FROM test.t where id= pid #定义游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET notfound = 1 #定义declare continue handler,这个会根据上下文是否有结果判断是否执行SET notfound = 1
OPEN cur1
FETCH cur1 INTO a
if notfound = 1 then
select 'no result'
#写业务逻辑
ELSE
select concat('result:', a)
#写业务逻辑
end if
CLOSE cur1
END
$
delimiter
call curdemo(240)
MySQLdb.connect是python 连接MySQL数据库的方法,在Python中 import MySQLdb即可使用,至于connect中的参数很简单:\x0d\x0ahost:MySQL服务器名\x0d\x0auser:数据库使用者\x0d\x0apassword:用户登录密码\x0d\x0adb: *** 作的数据库名\x0d\x0acharset:使用的字符集(一般是gb2312)\x0d\x0acursor = db.cursor() 其实就是用来获得python执行Mysql命令的方法,也就是\x0d\x0a我们所说的 *** 作游标\x0d\x0a下面cursor.execute则是真正执行MySQL语句,即查询TABLE_PARAMS表的数据。\x0d\x0a至于fetchall()则是接收全部的返回结果行 row就是在python中定义的一个变量,用来接收返回结果行的每行数据。同样后面的r也是一个变量,用来接收row中的每个字符,如果写成C的形式就更好理解了\x0d\x0afor(string row = ''row 回答于 2022-11-16欢迎分享,转载请注明来源:内存溢出
评论列表(0条)