是否按列名插入SQLite表



有没有办法传递之类的列表

PersNr_List = ['00001', '00002','00003']

插入SQLite表的第一列,在本例中称为"PersNr"?我可以从列中进行SELECT,但也可以传递到特定列中吗?

如果这让人困惑,我很抱歉。现在我只想实现这个:

PersNr    columnName1    columnName2 .....
00001
00002
00003
00004

我尝试过循环,但无法使其工作:

PersNr_List = ['00001', '00002','00003']
for x in PersNr_List: 
cursor.executemany('INSERT INTO payroll_details VALUES (?)', PersNr_List)

非常感谢您的帮助!

您需要使persnNr_List成为一个列表列表。每个嵌套列表都是一行的值列表,即使您只插入到一列中也是如此。

PersNr_List = [['00001'], ['00002'],['00003']]

当您使用executemany()时,您不需要循环,它会自动一次插入所有循环。

如果没有插入所有列,则必须在查询中指定列名。

cursor.executemany('INSERT INTO payroll_details (PersNr) VALUES (?)', PersNr_List)

即使正在插入所有列,这也是一个好主意,因为它很容易出错,这取决于列的顺序。

最新更新