SQLite的。除了last_insert_rowid()之外,如何在Insert之后获取Auto Increment Primary Key的值?

时间:2010-08-09 16:18:24

标签: python sqlite flask

我正在使用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后生成的主键?

1 个答案:

答案 0 :(得分:30)

你这样做的方式是有效的。如果上述剪切由两个脚本同时执行,则不会出现问题。 last_insert_rowid()返回调用它的连接的最新INSERT语句的rowid。你也可以通过g.db.lastrowid获得rowid。