python 往mysql數據庫中插入多條記錄。


最近想寫mysql庫,用到insert into語句,如何一次性將多條記錄插入庫表中呢。

 

MySQLdb提供了兩個執行語句的方法:一個是execute(),另一個是executemany()

 

execute(sql)

       可接受一條語句從而執行

 

executemany(templet,args)

       能同時執行多條語句,執行同樣多的語解碼器可比execute()快得多,強烈建議執行多條語句時使用executemany

       templet:sql模板字符串,

             例如: ‘insert into table(id,name) values(%s,%s)’

       args:模板字符串中的參數,是一個列表,列表中的每一個元素必須是元組!!!

             例如:[(1,'小明'),(2,'小紅'),(3,'琦琦'),(4,'韓梅梅')]

 



#!/usr/bin/env python
# encoding: utf-8
import pymysql
from config.config import *
import datetime
def get_conn():
conn=pymysql.connect(host=HOST,port=PORT,user=USER,passwd=PASSWORD,db=DB,charset=CHARSET, cursorclass=pymysql.cursors.DictCursor)
return conn
def get_idlist():
datalist=[]
conn=get_conn()
try:
with conn.cursor() as cursor:
sql="select PAGE_CD,PAGE_NAME from sns_page where PAGE_ID in(%s,%s,%s)"%tuple(IDLIST)
print(sql)
cursor.execute(sql)
datalist=cursor.fetchall()
except Exception as e:
print(e.args)
finally:
conn.close()
return datalist
def save_data(dicts):
now=datetime.datetime.now()
conn=get_conn()
data=((now,dicts["PAGE_CD"],"FB","FANS_NUM",dicts["FANS_NUM"],now),(now,dicts["PAGE_CD"],"FB","FOLLOW_NUM",dicts["FOLLOW_NUM"],now))
try:
with conn.cursor() as cursor:
sql="insert into sns_insight_log(LOG_DATE,BIZ_ID,MEDIA_TYPE,ITEM_NAME,DEC_VALUE,UPD_DATE) values(%s,%s,%s,%s,%s,%s)"
cursor.executemany(sql,data)
conn.commit()
except:
conn.rollback()
finally:
conn.close()
if __name__=="__main__":
print(get_idlist())

 


免責聲明!

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



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