python – Sqlite 插入后如何获取自动递增主键的值,而不是last_insert_rowid()? - 代码日志

python – Sqlite 插入后如何获取自动递增主键的值,而不是last_insert_rowid()?

我正在使用Sqlite3与Flask的微框架,但这个问题只涉及到Sqlite方面的事情。

以下是代码段:

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

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

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

交易可能是凌乱的在Sqlite中有一个整洁的方式来返回在执行INSERT后生成的主键?

你这样做的方式是有效的。如果上述剪切被两个脚本并发执行,则不会有问题。 last_insert_rowid()返回调用它的连接的最新INSERT语句的rowid。你也可以通过做g.db.lastrowid来获得rowid。
http://stackoverflow.com/questions/3442033/sqlite-how-to-get-value-of-auto-increment-primary-key-after-insert-other-than

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:python – Sqlite 插入后如何获取自动递增主键的值,而不是last_insert_rowid()?