Sqlite. How to get value of Auto Increment Primary Key after Insert, other than last_insert_rowid()?

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

  •  27-09-2019
  •  | 
  •  

문제

I am using Sqlite3 with Flask microframework, but this question concerns only the Sqlite side of things..

Here is a snippet of the code:

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

The downloads table has another column with the following attributes: id integer primary key autoincrement,

If two people write at the same time the code above could produce errors.

Transactions can be messy. In Sqlite is there a neat built in way of returning the primary key generated after doing an INSERT ?

도움이 되었습니까?

해결책

The way you're doing it is valid. There won't be a problem if the above snipped is executed concurrently by two scripts. last_insert_rowid() returns the rowid of the latest INSERT statement for the connection that calls it. You can also get the rowid by doing g.db.lastrowid.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top