Python pymysql呼叫儲存過程

2021-10-03 04:33:03 字數 2340 閱讀 6838

使用pymysql呼叫儲存過程

注意:儲存過程需要在declare定義變數之後新增set @@autocommit=1;,這是因為pymysql預設autocommit=0。

import pymysql

db = pymysql.connect(host='rm-******.mysql.rds.aliyuncs.com', port=3306, user='root',

password='******', db='***')

cursor = db.cursor(pymysql.cursors.dictcursor)

cursor.callproc("proc_name", *args) # 引數為儲存過程名稱和儲存過程接收的引數

db.commit()

# 獲取資料

data = cursor.fetchall()

# 關閉資料庫連線

db.close()

獲取呼叫儲存過程後的返回值

import pymysql

db = pymysql.connect(host='rm-******.mysql.rds.aliyuncs.com', port=3306, user='root',

password='******', db='***')

cursor = db.cursor(pymysql.cursors.dictcursor)

cursor.callproc("proc_name", "param_0","param_1","param_2") # 引數為儲存過程名稱和儲存過程接收的引數

db.commit()

# 獲取資料

data = cursor.fetchall()

cursor.execute("select @_proc_name_0,@_proc_name_1,@_proc_name_2")# 查詢呼叫儲存過程後返回的引數

param_value = cursor.fetchone()

# 關閉資料庫連線

db.close()

說明: 使用callproc呼叫儲存過程時,要注意儲存過程引數的型別和順序要和資料庫中儲存過程的一致。獲取返回值需要重新使用select語句查詢。查詢的返回值要根據傳入位置確定,例如查詢param_2這個引數經過儲存過程處理後的返回值,要使用"select @_proc_name_2 "語句。查詢字段規則是 @_+儲存過程名稱+_返回值在傳入時的位置(從0計算)。因為param_2傳入時是第3個引數,從0開始計算就是2,所以需要查詢@_proc_name_2。

封裝成方法後的**

import pymysql

def callpro_sql(proc_name: str, return_sub: list, *args):

'''呼叫儲存過程

:param proc_name: 儲存過程名稱

:param return_sub: 返回值下標列表

:param args: 儲存過程引數

:return:

'''try:

db = pymysql.connect(host='rm-****.mysql.rds.aliyuncs.com', port=3306, user='root', password='*****', db='*****')

# 使⽤cursor()⽅法獲取操作游標

cursor = db.cursor(pymysql.cursors.dictcursor)

cursor.callproc(proc_name, args)

db.commit()

# 獲取資料

data = cursor.fetchall()

params = ",".join("@_{}_{}".format(proc_name, i) for i in return_sub)

s_result_sql = "select {}".format(params)

print(s_result_sql)

cursor.execute(s_result_sql)

result = cursor.fetchone()

# 關閉資料庫連線

db.close()

except exception as e:

data = 'error'

result = {}

return data, result

callpro_sql("test_proc", [1, 2], "param_0_test", "param_1_test", "param_2_test", "param_3_test", "param_4_test")

python pymysql基礎使用

方法 conn.基本使用 import pymysql conn pymysql.connect host 你的資料庫位址 user 使用者名稱 password 密碼 database 資料庫名 charset utf8 cursor conn.cursor sql create table us...

Python,pymysql簡單使用。

基本操作 1 匯入pymysql import pymysql 2 連線資料庫 conn pymysql.connect host localhost user root passwd root db ere charset utf8 務必注意各等號前面的內容!charset引數可避免中文亂碼 3 ...

Python pymysql連線MySQL資料庫

pip安裝pymysql pip install pymysql 2.連線資料庫 首先要提供資料庫資訊 位址 埠 使用者名稱 密碼 config 以下用的是pymysql 1 根據登入的資訊,去登入資料庫,產生乙個資料庫連線 conn pymysql.connect config 2 產生乙個游標,...