SQLite的。如何获得插入后自动递增主键的值,比last_insert_rowid其他()?

StackOverflow https://stackoverflow.com/questions/3442033

  •  27-09-2019
  •  | 
  •  

我使用SQLITE3从Flask microframework,但这个问题仅涉及的东西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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top