Comment récupérer l'ID inséré après avoir inséré une ligne dans SQLite en utilisant Python? J'ai une table comme celle-ci:
id INT AUTOINCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(50)
J'insère une nouvelle ligne avec des exemples de données username="test"
et password="test"
. Comment récupérer l'identifiant généré de manière sécurisée par transaction? Il s'agit d'une solution de site Web, où deux personnes peuvent insérer des données en même temps. Je sais que je peux obtenir la dernière ligne lue, mais je ne pense pas que ce soit une transaction sûre. Quelqu'un peut-il me donner des conseils?
last_insert_rowid()
fonction SQL , vous permettant d'insérer l'ID de la dernière ligne comme clé étrangère dans une instruction d'insertion suivante , entièrement en SQL.last_insert_rowid
dessous github.com/ghaering/pysqlite/blob / ... (ce qui n'est pas garanti threadsafe mais semble la seule option FWIW). Voir aussi stackoverflow.com/q/2127138/32453INSERT
mais ne fonctionne pas pourUPDATE
. Mais lors de la mise à jour d'une ligne, vous avez probablement déjà l'ID de ligne correspondant de toute façon (il m'a juste fallu un certain temps pour comprendre cela ...).Tous les crédits à @Martijn Pieters dans les commentaires:
Vous pouvez utiliser la fonction
last_insert_rowid()
:la source