Sqlite. Как получить значение Автоматического Инкрементного Первичного ключа после того, как Вставляют, кроме last_insert_rowid ()?

Я использую 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 там аккуратное, созданное способом возвратить первичный ключ, сгенерированный после выполнения ВСТАВКИ?

24
задан bernie 9 August 2010 в 16:28
поделиться

1 ответ

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

31
ответ дан 29 November 2019 в 00:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: