¿Cómo recuperar la identificación insertada después de insertar una fila en SQLite usando Python? Tengo una mesa como esta:
id INT AUTOINCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
Inserto una nueva fila con datos de ejemplo username="test"
y password="test"
. ¿Cómo recupero la identificación generada de una manera segura para la transacción? Esto es para una solución de sitio web, donde dos personas pueden estar insertando datos al mismo tiempo. Sé que puedo obtener la última fila de lectura, pero no creo que sea una transacción segura. ¿Alguien puede darme algún consejo?
last_insert_rowid()
función SQL , que le permite insertar la última identificación de fila como una clave foránea en una siguiente instrucción de inserción, completamente en SQL.last_insert_rowid
debajo de github.com/ghaering/pysqlite/blob/… (que no está garantizado para subprocesos pero parece la única opción FWIW). Ver también stackoverflow.com/q/2127138/32453INSERT
pero no funcionaUPDATE
. Pero al actualizar una fila, probablemente ya tenga la identificación de fila correspondiente de todos modos (solo me tomó un tiempo descubrir esto ...).Todos los créditos a @Martijn Pieters en los comentarios:
Puedes usar la función
last_insert_rowid()
:fuente