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

时间:2011-10-12 09:25:39

标签: python 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()

1 个答案:

答案 0 :(得分:3)

  

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

在全球范围内,你不能假设它。但与您的关联相关,您可以 - 因此您可以使用SELECT LAST_INSERT_ID()cursor.connection.insert_id()。甚至可能cursor.lastrowid,但我不确定它是否会起作用。