【发布时间】:2014-10-31 23:38:44
【问题描述】:
在 Python 中,我使用 SQLite 的 executemany() 函数和 INSERT INTO 将内容插入到表中。如果我通过 executemany() 一个要添加的东西的列表,我可以依靠 SQLite 从列表中按顺序插入这些东西吗?原因是因为我使用 INTEGER PRIMARY KEY 来自动增加主键。由于各种原因,我需要在我将其添加到表中时(之前或之后,但在那个时间左右)知道一行新的自动递增主键,所以简单地假设会非常方便我传递executemany()的列表的每个连续元素的主键都会上升一个。在开始添加内容之前,我已经拥有最高的现有主键,因此我可以增加一个变量来跟踪我希望 executemany() 为每个插入的行提供的主键。这是一个合理的想法,还是假设太多?
(我想另一种方法是将 execute() 与 sqlite3_last_insert_rowid() 逐一使用,但这比对数千个条目使用 executemany() 慢。)
【问题讨论】: