Mysql学习---使用Python执行存储过程
Posted 小a玖拾柒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql学习---使用Python执行存储过程相关的知识,希望对你有一定的参考价值。
使用Python执行存储过程
使用Python执行存储过程[2部分]:
1.执行存储过程,获取存储过程的结果集
2.将返回值设置给了 @_存储过程名_序号 =
#!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql conn = pymysql.connect(host=\'127.0.0.1\', port=3306, user=\'root\', passwd=\'\', db=\'test_python\', charset=\'utf8\') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行存储过程 # @_p3_0 = 1, 相当于Python帮我们创建了变量,所以返回值也是放在了这个变量里面,需要我们手动获取 # @_p3_1 = 2 # @_p3_2 = 3 # @_p3_3 = 0 ret1 = cursor.callproc(\'p3\', args=(1, 2, 3, 0)) # print(\'ret1:\', ret1) # 传递参数过去 ret1: (1, 2, 3, 0),同时执行了存储过程将结果放在内存 result = cursor.fetchall() # 从内存获取返回值,[{\'@_p3_0\': 1, \'@_p3_3\': 7, \'@_p3_1\': 2, \'@_p3_2\': 103}] print(\'返回的参数:\', result, \'\\n\') # 获取执行完存储的参数,因为Python帮我们将结果放在了变量里,所以需要从变量里面获取 ret2 = cursor.execute("select @_p3_0,@_p3_1,@_p3_2,@_p3_3") # print(\'ret2:\', ret2) # 什么都不执行: ret2: 1 result2 = cursor.fetchall() # 获取返回值,[{\'@_p3_0\': 1, \'@_p3_3\': 7, \'@_p3_1\': 2, \'@_p3_2\': 103}] print(\'返回的结果集:\', result2) conn.commit() # 因为存储过程里面有多个sql语句,可能有selete,insert等语句,所以为了保证代码的完整 cursor.close() conn.close()
以上是关于Mysql学习---使用Python执行存储过程的主要内容,如果未能解决你的问题,请参考以下文章