I’m inserting data in a database with INSERT INTO
The main problem is that I’m inserting around 170k points of data and I’m looping a code like that:
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()
This code is extremely slow, is there a faster way to do it?
I was thinking if there is a way to insert a whole column of my matrix data at once.
Advertisement
Answer
Try this. Basically you can achieve it using executemany() method.
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()