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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM