我正在使用带有 Flask 微框架的 Sqlite3,但这个问题只涉及 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。
关于python - 方镁石。插入后如何获取自动增量主键的值,除了last_insert_rowid()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442033/