Python SQLite的executemany()函数是否总是按顺序执行?

3
在Python中,我使用SQLite的executemany()函数和INSERT INTO将内容插入到表中。如果我向executemany()传递要添加的内容列表,我能否指望SQLite按照列表中的顺序插入这些内容?原因是我使用INTEGER PRIMARY KEY来自动增加主键。出于各种原因,我需要在将行添加到表中时(之前或之后,但大约在那个时间点),知道新的自动递增主键,因此可以方便地假定主键会为我传递给executemany()的连续元素每个上升一个。我已经有了开始添加内容之前最高的现有主键,因此我可以递增变量来跟踪我期望executemany()给每个插入的行分配的主键。这是一个可靠的想法,还是假设过多?(我猜另一种选择是使用带sqlite3_last_insert_rowid()的execute()逐个执行,但比对于很多条目使用executemany()要慢。)
1个回答

3

Python的sqlite3模块按照正确的顺序执行带有列表值的语句。

注意:如果代码已经知道要生成的ID值,则应该显式插入此值,以便在这种情况下出现错误时获得错误信息。


好的,只有在我复制现有主键而不是跳过自动增量时才会给我一个错误...不过,这仍然是一个好主意,谢谢。 - std_answ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接