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()

image

image

以上是关于Mysql学习---使用Python执行存储过程的主要内容,如果未能解决你的问题,请参考以下文章

mysql 存储过程学习(总)

MySQL基础入门学习13存储过程

《mysql必知必会》读书笔记--存储过程的使用

Java学习总结(十七)——MySQL数据库存储过程,触发器,数据库权限,数据库设计三大范式

mysql存储过程的学习

6Python全栈之路系列之MySQL存储过程