Ich führe eine INSERT INTO-Anweisung aus
cursor.execute("INSERT INTO mytable(height) VALUES(%s)",(height))
und ich möchte den Primärschlüssel bekommen.
Meine Tabelle hat 2 Spalten:
id primary, auto increment
height this is the other column.
Wie erhalte ich die "ID", nachdem ich diese gerade eingefügt habe?
Antworten:
Verwenden Sie
cursor.lastrowid
diese Option , um die letzte in das Cursorobjekt eingefügte Zeilen-ID oderconnection.insert_id()
die ID der letzten Einfügung in diese Verbindung abzurufen.quelle
insert_id
zurückkehren?lastrowid
erst verfügbar, nachdem die aktuelle Transaktion festgeschrieben wurde?Außerdem
cursor.lastrowid
(eine von MySQLdb unterstützte dbapi / PEP249-Erweiterung):cursor.lastrowid
ist etwas billiger alsconnection.insert_id()
und viel billiger als eine weitere Rundreise zu MySQL.quelle
cursor.lastrowid
billiger alsconnection.insert_id()
?cursor.lastrowid
etwas anderes zurückgegeben wurde alsconnection.insert_id()
.cursor.lastrowid
gab die letzte Einfügungs-ID zurück,connection.insert_id()
zurückgegeben0
. Wie kann das sein?Die Python-DBAPI-Spezifikation definiert auch das Attribut 'lastrowid' für das Cursorobjekt.
... sollte auch funktionieren, und es basiert offensichtlich auf jeder Verbindung.
quelle
oder
quelle
select last_insert_id()
der CLI auf einem Linux-Computer