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

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

  •  27-09-2019
  •  | 
  •  

Вопрос

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top