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?
Ответы
Ответ 1
То, как вы это делаете, действительно. Не будет проблем, если вышеупомянутый снимок будет выполняться одновременно двумя сценариями. last_insert_rowid()
возвращает rowid последней инструкции INSERT для вызывающего ее соединения. Вы также можете получить rowid, выполнив g.db.lastrowid
.