首页 新闻 会员 周边 捐助

怎么用Python快速批量向MySQL中插入数据

0
悬赏园豆:30 [已解决问题] 解决于 2020-12-21 12:45

database db001 中有张表test1:
表结构为:
create table test (id int primary key,c1 char(1),c2 char(10),c2 char(10),c3 char(10),c4 char(10),c5 char(10));

目前找到一种方法,但是插入速度很慢:

import pymysql
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="db001" )
cursor=conn.cursor()
for i in range(1,18001):
param=str(i)
sql="insert into test_char1 values(%s,'b','b','b','b','b')"
cursor.execute(sql,param)
conn.commit()
conn.close()
cursor.close()

请问有什么快速向mysql插入数据的方法吗?谢谢谢谢!!

日常云吸猫的主页 日常云吸猫 | 初学一级 | 园豆:89
提问于:2020-12-18 17:24
< >
分享
最佳答案
1
#可以在 sql上做文章一条sql全部插入
import pymysql

#创建数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="db001" )

#获取一个游标对象
cursor=conn.cursor()

#设置参数i,for语句循环
value = ''
for i in range(1,18001):
    value+=f"({i},'b','b','b','b','b'),"
value = value[:-1]
sql = f'INSERT test_char1 table ( "clo1", "col2", "col3", "col4", "col5" ) VALUES {value}'
print(sql)
count = cursor.execute(sql)
conn.commit()

#关闭连接
conn.close()
cursor.close()
收获园豆:30
小小咸鱼YwY | 老鸟四级 |园豆:3312 | 2020-12-18 17:41

你好,谢谢解答!!我刚刚用给出的代码跑,插入语句在终端上打印出来了 还有个报错,能帮忙看一下是怎么回事吗?python版本是3.7.

日常云吸猫 | 园豆:89 (初学一级) | 2020-12-18 17:59

@日常云吸猫: 我sql随便复制的没注意你的字段.修正一下

#可以在 sql上做文章一条sql全部插入
import pymysql

#创建数据库连接
conn = pymysql.connect(host="localhost",port=3306,user="root",passwd="123456",db="db001" )

#获取一个游标对象
cursor=conn.cursor()

#设置参数i,for语句循环
value = ''
for i in range(1,18001):
    value+=f"({i},'b','b','b','b','b'),"
value = value[:-1]
sql = f'INSERT into test VALUES {value}'
print(sql)
count = cursor.execute(sql)
conn.commit()

#关闭连接
conn.close()
cursor.close()

小小咸鱼YwY | 园豆:3312 (老鸟四级) | 2020-12-21 11:53

@小小咸鱼YwY:执行没有问题,谢谢大佬!!

日常云吸猫 | 园豆:89 (初学一级) | 2020-12-21 12:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册