Hallo,
ich habe eine Datenbank in sqlite3 und dort ein Feld id vom Typ "INTEGER PRIMARY KEY".
Wenn ich jetzt einen Eintrag in die Datenbank mache, füge ich im INSERT-Query das Feld id nicht ein - es wird automatisch eine hochzählende ID verwendet.
Soweit so gut ...
Gibt es eine direkte Möglichkeit nach dem Query herauszufinden, welche id genau für diesen INSERT Befehl verwendet wurde?
Das id Feld ist in diesem Fall quasi eine Art eindeutige Transaktionsnummer. Und ich möchte diese zurückerhalten.
Hoffe ihr kennt eine Lösung.
Chris
SQLITE3 und "INTEGER PRIMARY KEY"
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das ist aber insofern prinzipiell, weil ja nicht klar ist, ob die neue ID größer ist als die bis dato größte! Wenn die Implementierung erst Lücken füllt, bekommt man da Probleme. Bei MySQL gabs dazu die last_insert_id()-Funktion iirc. Such doch mal bei SQLite, ob es da was ähnliches gibt!Jan-Peer hat geschrieben:Prinzipiell sollte es ein "Select max(id) from table" tun.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Chris!sprudel hat geschrieben:Gibt es eine direkte Möglichkeit nach dem Query herauszufinden, welche id genau für diesen INSERT Befehl verwendet wurde?
Vielleicht steht etwas in ``cursor.lastrowid``.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hallo gerold.gerold hat geschrieben:Hallo Chris!sprudel hat geschrieben:Gibt es eine direkte Möglichkeit nach dem Query herauszufinden, welche id genau für diesen INSERT Befehl verwendet wurde?
Vielleicht steht etwas in ``cursor.lastrowid``.
mfg
Gerold
Vielen Dank, das hat perfekt funktioniert

Dankeschön
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Dafür gibt es ja ZugriffssperrenMasaru hat geschrieben:... nur dann, wenn er garantieren kann, dass keine andere Verbindungen zuvor ebenfalls einen Insert in genau diese Tabelle gehauen haben.
