SQLite. Как получить значение автоматического приращения Первичного ключа после вставки, кроме last_insert_rowid ()?
Вопрос
Я использую SQLite3 с Flask Microframework, но этот вопрос касается только SQLite Of Things ..
Вот фрагмент кода:
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 есть аккуратный встроенный способ возвращения первичного ключа, сгенерированного после выполнения вставки?
Решение
Как вы делаете это, действительно. Там не будет проблем, если вышеупомянутое выше, выполнено одновременно двумя сценариями. last_insert_rowid()
Возвращает ROWID последнего оператора вставки для соединения, которое его вызывает. Вы также можете получить RowiD, делая g.db.lastrowid
.
Не связан с StackOverflow