我正在使用INSERT INTO在数据库中插入数据
主要的问题是我插入了大约170k的数据点,并且我循环了一段代码,就像这样:
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()这段代码非常慢,有没有更快的方法呢?
我在想,是否有一种方法可以一次插入整个矩阵数据列。
发布于 2020-06-07 23:30:45
尝尝这个。基本上你可以使用executemany()方法来实现它。
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()发布于 2020-06-07 23:31:22
支持可能因DBMS而异(您没有指定),但是您可以使用预准备语句,在VALUES子句中使用DBMS的paramstyle字符串,并将行列表传递给executemany()方法。请参阅https://www.python.org/dev/peps/pep-0249/#cursor-methods上的文档
https://stackoverflow.com/questions/62247508
复制相似问题