微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sqlite除了last_insert_rowid之外,如何在插入后获取自动增量主键的值?

如何解决Sqlite除了last_insert_rowid之外,如何在插入后获取自动增量主键的值?

你这样做的方式是有效的。如果上面的片段被两个脚本同时执行,则不会有问题。last_insert_rowid()返回调用它的连接的最新INSERT语句的rowid。你还可以通过执行以下操作获取rowid g.db.lastrowid

解决方法

我在Flask微框架中使用Sqlite3,但是这个问题仅涉及Sqlite方面。

这是代码片段:

g.db.execute('INSERT INTO downloads (name,owner,mimetype) VALUES (?,?,?)',[name,mimetype])
file_entry = query_db('SELECT last_insert_rowid()')
g.db.commit()

downloads表还有另一列,具有以下属性: id integer primary key autoincrement,

如果两个人同时写,上面的代码可能会产生错误。

交易可能会很混乱。在Sqlite中,是否有一种整洁的内置方法可以返回执行INSERT之后生成的主键?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。