SQLite. Jak se dostat na hodnotu Auto přírůstek primární klíč po Insert, kromě last_insert_rowid ()?

hlasů
20

Já používám sqlite3 s baňky microframework, ale tato otázka se týká pouze SQLite stránka věci ..

Zde je úryvek kódu:

g.db.execute('INSERT IGNORE  INTO downloads (name, owner, mimetype) VALUES (?, ?, ?)', [name, owner, mimetype])
file_entry = query_db('SELECT last_insert_rowid()')
g.db.commit()

downloadsTabulka má další sloupec s následujícími atributy: id integer primary key autoincrement,

Pokud se dva lidé píší současně kód výše by docházet k chybám.

Transakce může být chaotický. V SQLite je tam čistý postavena v cestě návratu primární klíč vygenerovaný poté, co dělá INSERT ignorovat?

Položena 09/08/2010 v 17:18
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
28

Způsob, jakým to děláte, je platný. Nebude se jednat o problém v případě, že výše přestřihl se provádí současně pomocí dvou scénářů. last_insert_rowid()vrací rowid nejnovějšího INSERT ignorovat příkaz pro připojení, které ji volá. Můžete také získat ROWID tím, že dělá g.db.lastrowid.

Odpovězeno 09/08/2010 v 17:26
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more