python - 方镁石。插入后如何获取自动增量主键的值,除了last_insert_rowid()?

标签 python sqlite flask

我正在使用带有 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/

相关文章:

python - PLY:C 解析器中的 token 移位问题

python - TypeError:在绘制 seaborn.regplot 时,无法根据规则 ('int64' 将数组数据从 dtype ('int32' )转换为 dtype 'safe' )

python - Flask、Python 和 Socket.io : multithreading app is giving me "RuntimeError: working outside of request context"

python - 使用 flask "ImportError: No module named flask"执行 hello world

python - 在 Python 文本语料库中优化正则表达式搜索

Python:按键集对列表进行分组

c# - 在 SQLite 上只执行 SELECT 命令

android - 为什么从应用程序管理中清除应用程序数据时会清除 SQLite 数据库?

c - 将 zSql arg 释放到 sqlite3_prepare_v2?

python - Sentry - 同时记录 Flask 和 Sentry/相同的 DSN