python中pymysql executemany 批量插入数据

import pymysql
import time
db = pymysql.connect("IP","username","password","database",charset='utf8')
cursor = db.cursor()
#数据库中的字段只是我自己的,可以根据所用字段自己进行测试。
#期格式要进行日期格式化,这一点还没找到好的方法处理
cursor.execute("""
  SELECT
  shop_name,
  receiver_area,
  receiver_address,
  date_format(pay_time,'%Y-%m-%d %H-%i-%s'),
  buyer_nick,

  receiver_name,
  receiver_mobile
  FROM detial limit 15000 """)
#此处是显示全部要入库的数据
data = cursor.fetchall() 
start = time.time()
#批量插入语句
cursor.executemany("""insert into d1
  (shop_name,receiver_area,receiver_address,pay_time,buyer_nick,receiver_name,receiver_mobile)
  values (%s,%s,%s,%s,%s,%s,%s)"""data)

#批量更新插入数据 on duplicate key update 跟要更新的数据 必须要有主键

cursor.executemany("""insert into d1
  (shop_name,receiver_area,receiver_address,pay_time,buyer_nick,receiver_name,receiver_mobile)
  values (%s,%s,%s,%s,%s,%s,%s)
  on duplicate key update receiver_name = values (receiver_name)""",data)


#必须要执行此操作才能写入到数据库
db.commit() 
cursor.close()
db.close()
end =time.time()
print(end -start)

#目前只用到批量插入,和判断是否存在数据,如果存在就更新数据,否则就插入,以后用到别的继续更新

猜你喜欢

转载自www.cnblogs.com/lgyxta/p/12100623.html