商品展示的网站,wordpress 制作主题,如何利用模板做网站,个人博客首页Python的pymysql中提供有cursor.execute()实现数据的逐行插入#xff0c;但是当数据量较大时#xff0c;这种插入方法十分耗时。这时我们可以使用cursor.executemany()函数来实现数据的批量插入。
executemany()用法
在数据库连接后#xff0c;使用cursor.excutemany(sql,…Python的pymysql中提供有cursor.execute()实现数据的逐行插入但是当数据量较大时这种插入方法十分耗时。这时我们可以使用cursor.executemany()函数来实现数据的批量插入。
executemany()用法
在数据库连接后使用cursor.excutemany(sql, list)执行批量插入其中sql为数据库SQL语句其中
sql中的变量可以写为%slist为要插入数据库的元组列表其中的元组元素依次与SQL语句中的%s对应。 注意 List中数据类型必须为Tuple元组 eg. [(1, ‘John’, ‘Doe’), (2, ‘Jane’, ‘Smith’),……] 具体实现如下
import pymysql# 连接数据库
conn pymysql.connect(hostlocalhost, userusername, passwordpassword, databasedbname)cursor db.cursor()# 准备数据
data [(1, John, Doe),(2, Jane, Smith),# 更多数据...
]# 生成插入语句
insert_sql INSERT INTO table_name (id, first_name, last_name) VALUES (%s, %s, %s)# 执行批量插入
cursor.executemany(insert_sql, data)cursor.close()
conn.commit()
conn.close()【注意】这里如果插入的数据量非常非常大时也可以使用MySQL自定义存储过程实现批量插入具体可以参考博客 python使用pymysql批量插入数据库5000W条复杂的数据如何用python脚本实现和用MySQL自定义存储过程实现
executemany()与ON DUPLICATE KEY UPDATE一起使用
当executemany与ON DUPLICATE KEY UPDATE一起使用 此时不能在SQL语句中ON DUPLICATE KEY UPDATE后面的部分继续使用%s表示变量而是使用value(columnName)表示需要update的变量。
正确样例如下
sql INSERT INTO test(id, random_value) VALUES(%s, %s)ON DUPLICATE KEY UPDATE random_value values(random_value)参考资料
Python使用pymysql模块的executemany()方法批量插入数据 提高Mysql数据库写入效率python使用pymysql批量插入数据库5000W条复杂的数据如何用python脚本实现和用MySQL自定义存储过程实现