首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python和SQL插入到整个列表中

问使用python和SQL插入到整个列表中
EN

Stack Overflow用户
提问于 2020-06-07 23:20:43
回答 2查看 110关注 0票数 1

我正在使用INSERT INTO在数据库中插入数据

主要的问题是我插入了大约170k的数据点,并且我循环了一段代码,就像这样:

代码语言:javascript
复制
for row in data:
   SQL='''INSERT INTO Table
       VALUES ({},{},{})
   '''.format(row[0],row[1],row[2])
   cur.execute(SQL)
cur.commit()
cur.close()
con.close()

这段代码非常慢,有没有更快的方法呢?

我在想,是否有一种方法可以一次插入整个矩阵数据列。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-07 23:30:45

尝尝这个。基本上你可以使用executemany()方法来实现它。

代码语言:javascript
复制
import mysql.connector

mydb = mysql.connector.connect(
  .....
)
mycursor = mydb.cursor()

val = []
for row in data:
   val.append((row[0],row[1],row[2]))

sql = "INSERT INTO table (x,y,z) VALUES (%s, %s, %s)"

mycursor.executemany(sql, val)

mydb.commit()
票数 2
EN

Stack Overflow用户

发布于 2020-06-07 23:31:22

支持可能因DBMS而异(您没有指定),但是您可以使用预准备语句,在VALUES子句中使用DBMS的paramstyle字符串,并将行列表传递给executemany()方法。请参阅https://www.python.org/dev/peps/pep-0249/#cursor-methods上的文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62247508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档