“插入或忽略”后lastrowid的值

时间:2013-06-28 16:16:56

标签: python sql sqlite insert

我有一个Python代码如下:

...
cur.execute("insert or ignore into books (title, authors, ...) \
values (:title, :authors, ..."), locals())
...
bookId = cur.lastrowid

如果ignore的{​​{1}}部分适用

然后select statement的值为cur.lastrowid

但这不是我想要的。我想从数据库中获取0值 无论如何。

我应该使用books.id声明还是有更聪明的方法来实现它?

我的临时解决方案:

select

2 个答案:

答案 0 :(得分:5)

没有更好的方法。 要从数据库中读取一些现有值,只有SELECT

答案 1 :(得分:3)

尝试使用on duplicate key update id=LAST_INSERT_ID(id)作为PK。从那时起,似乎lastrowID似乎是正确的。