Python SQLite executemany()总是按顺序?

时间:2014-09-07 16:52:32

标签: python sql sqlite

在Python中,我使用SQLite的executemany()函数和INSERT INTO将东西插入表中。如果我传递executemany()一个要添加的东西的列表,我可以依靠SQLite按顺序从列表中插入这些东西吗?原因是因为我使用INTEGER PRIMARY KEY来自动增加主键。由于各种原因,我需要知道一行的新自动递增主键,我将它添加到表中(之前或之后,但在那个时间周围),所以简单地能够假设是非常方便的对于列表的每个连续元素,主键将向上传递一次,即传递executemany()。在我开始添加内容之前,我已经拥有了最高的现有主键,所以我可以增加一个变量来跟踪主键,我希望executemany()给出每个插入的行。这是一个合理的想法,还是假设太多了?

(我想另一种方法是使用sqlite3_last_insert_rowid()逐个使用execute(),但这比使用executemany()对数千个条目要慢。)

1 个答案:

答案 0 :(得分:1)

Python的sqlite3模块以正确的顺序执行包含列表值的语句。

注意:如果代码已经知道要生成的ID值,那么您应该显式插入此值,以便在此期望结果出错时出现错误。