pymysql批量更新資料

2021-10-13 10:04:00 字數 2071 閱讀 6000

使用指令碼執行資料顯得更慢,資料的可操作性要好一些,可以對資料進行處理;

import pymysql

connection = pymysql.connect(

"127.0.0.1"

,"alvin2"

,"123456"

,"podata"

)try

:with connection.cursor(

)as cursor:

# read a single record

# 查詢需要更新的資料,左鏈結查出關聯表的資料

sql =

"""select b.`emp_family_name`, b.`emp_first_name`, b.`email_suffix`, b.`emp_position`, b.`birthday`, b.`hire_date`, b.`domainacc`, b.`emp_fire_date`, b.`phfloc`, b.`phflocdescr`, b.`socloc`, b.`soclocdescr`,b.`prc_dt`,b.`exp_prc_dt_end`,b.`workcitycode`,b.`bu`,b.`budescr`, b.`contractloc`, b.`contractlocdescr`, b.`eid`

from hris_employee as a left join hris_employee_20201222 as b

on a.`eid` = b.`eid`"""

cursor.execute(sql)

result = cursor.fetchall(

)# 需要批量更新的sql

updatesql =

"update hris_employee set emp_family_name=(%s), emp_first_name=(%s), email_suffix=(%s), emp_position=(%s), birthday=(%s), hire_date=(%s), domainacc=(%s), emp_fire_date=(%s), phfloc=(%s), phflocdescr=(%s), socloc=(%s), soclocdescr=(%s), prc_dt=(%s), exp_prc_dt_end=(%s), workcitycode=(%s), bu=(%s), budescr=(%s), contractloc=(%s), contractlocdescr=(%s) where eid=(%s)"

cursor.executemany(updatesql, result)

print

('執行完成'

)finally

: connection.close(

)

update

`hris_employee`

as a left

join

`hris_employee_20201222`

as b

on a.

`eid`

=b.`eid`

set a.

`emp_family_name`

= b.

`emp_family_name`

, a.

`emp_first_name`

= b.

`emp_first_name`

, a.

`email_suffix`

= b.

`email_suffix`

, a.

`emp_position`

= b.

`emp_position`

, a.

`birthday`

= b.

`birthday`

, a.

`hire_date`

= b.

`hire_date`

, a.

`domainacc`

= b.

`domainacc`

, a.

`emp_fire_date`

= b.

`emp_fire_date`

pymysql獲取excel資料批量寫入資料庫

由於系統需要獲取到的文件的格式是xlsx,又發現xlrd在2.0.2不支援讀取xlsx的文件了,所以在用了openpyxl庫去讀取xlsx格式的excel 安裝openpyxl pip install openpyxlfrom openpyxl import load workbook workbo...

批量更新資料

update bs storage setstoreqty storeqty a.mqty from select nb disbill.companyid,goodsid,nb disbill.outstoreid,outstorepos,mqty,nb disbill.billno from n...

pymysql檢視 更新資料庫

開啟資料庫連線 db pymysql.connect 127.0.0.1 root 9ja6ft dqvbo ops 使用cursor 方法獲取操作游標 cursor db.cursor sql 查詢語句 sql select from news where live id s self.live ...