小编典典

Python / sqlite:获取新插入的行的PK

sql

我正在使用原始SQL插入一行,并且需要获取新插入的行的主键。我不能假定任何非PK插入的数据都是唯一的,也不能假定该行是最后插入的行。

如果无法使用原始SQL,那么使用“常规”插入怎么办?我认为我将必须完全创建一个新的customID字段。然后,我将创建一个随机数变量并将其作为唯一ID插入。自从插入以来,我知道它是什么。但这似乎违反了将PK作为唯一标识符的目的。有没有办法提取序列的下一个ID(例如在Oracle中)?

insert_sql = "insert into my_table(title, text) values ('the title', 'the text')"

cursor = connection.cursor()
cursor.execute(insert_sql)
transaction.commit_unless_managed()

阅读 226

收藏
2021-04-22

共1个答案

小编典典

…也不能假设该行是最后插入的行。

在全球范围内,您无法假设这一点。但是与您的连接有关,您可以-这样就可以使用SELECT LAST_INSERT_ID()cursor.connection.insert_id()。甚至可以cursor.lastrowid,但是我不确定它是否也能正常工作。

2021-04-22