Подтвердить что ты не робот

Sqlite. Как получить значение Auto Increment Primary Key после Insert, кроме last_insert_rowid()?

Я использую 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?

4b9b3361

Ответ 1

То, как вы это делаете, действительно. Не будет проблем, если вышеупомянутый снимок будет выполняться одновременно двумя сценариями. last_insert_rowid() возвращает rowid последней инструкции INSERT для вызывающего ее соединения. Вы также можете получить rowid, выполнив g.db.lastrowid.