How to use python mysqldb to insert many rows at once
mysql, mysql-python, python
Solution
From MySQLdb User's Guide:
c.executemany(
"""INSERT INTO breakfast (name, spam, eggs, sausage, price)
VALUES (%s, %s, %s, %s, %s)""",
[
("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )
] )
so in your case:
c.executemany("insert into T (F1,F2) values (%s, %s)",
[('a','b'),('c','d')])
Problem
I have a list of lists, e.g `[['a','b'],['c','d']]`. I have a table called `T` and two fields `F1`, `F2`. The first item in the field list maps to `F1`, second to `F2`. How can I insert rows for each inner list in a single command or call, rather than using a for loop like this? ``` for i in [['a','b'],['c','d']]: c.execute("insert into T (F1,F2) values (%s, %s)", (i[0], i[1])) ```