使用python和SQL插入整个列表
我正在使用INSERT INTO在数据库中插入数据 主要问题是我插入了大约170k个数据点,我循环了这样一个代码:使用python和SQL插入整个列表,python,sql,Python,Sql,我正在使用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() 这个代码非常慢,有没有更快的方法呢 我在想是否有一种方法
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()
这个代码非常慢,有没有更快的方法呢
我在想是否有一种方法可以一次插入整个矩阵数据列。试试这个。基本上,您可以使用
executemany()
方法来实现它
导入mysql.connector
mydb=mysql.connector.connect(
.....
)
mycursor=mydb.cursor()
val=[]
对于数据中的行:
val.append((行[0],行[1],行[2]))
sql=“插入表(x,y,z)值(%s,%s,%s)”
mycursor.executemany(sql,val)
mydb.commit()
试试这个。基本上,您可以使用executemany()
方法来实现它
导入mysql.connector
mydb=mysql.connector.connect(
.....
)
mycursor=mydb.cursor()
val=[]
对于数据中的行:
val.append((行[0],行[1],行[2]))
sql=“插入表(x,y,z)值(%s,%s,%s)”
mycursor.executemany(sql,val)
mydb.commit()
支持可能因DBMS而异(您没有指定),但您可以使用准备好的语句,在VALUES子句中使用DBMS的paramstyle
字符串,并将行列表传递给executemany()
方法。请参阅中的文档,支持可能因DBMS而异(您没有指定),但您可以使用准备好的语句,在VALUES子句中使用DBMS的paramstyle
字符串,并将行列表传递给executemany()
方法。请参阅位于的文档检查此项:检查此项: