Допустим, у меня есть список следующих значений:
listA = [1,2,3,4,5,6,7,8,9,10]
Я хочу поместить каждое значение этого списка в столбец с именем formatteddate
в моей базе данных SQLite, используя команду executemany, а не перебирать всесписок и вставка каждого значения отдельно.
Я знаю, как это сделать, если мне нужно вставить несколько столбцов данных. Например, если бы мне пришлось вставить listA, listB, listC, я мог бы создать кортеж типа (listA[i],listB[i],listC[i])
. Можно ли вставить один список значений без цикла. Также предположим, что значения вставки являются целыми числами.
ОБНОВЛЕНИЕ: На основании предоставленного ответа я попробовал следующий код:
def excutemanySQLCodewithTask(sqlcommand,task,databasefilename):
# create a database connection
conn = create_connection(databasefilename)
with conn:
cur = conn.cursor()
cur.executemany(sqlcommand,[(i,) for i in task])
return cur.lastrowid
tempStorage = [19750328, 19750330, 19750401, 19750402, 19750404, 19750406, 19751024, 19751025, 19751028, 19751030]
excutemanySQLCodewithTask("""UPDATE myTable SET formatteddate = (?) ;""",tempStorage,databasefilename)
Это все еще занимает слишком много времени (примерно 10 часов). У меня 150 000 предметов в TempStorage. Я попробовал INSERT INTO, и это тоже было медленно. Кажется, что невозможно составить список кортежей целых чисел.