LAST_INSERT_ID () MySQL
Ich habe eine MySQL-Frage, die ich denke, muss ganz einfach. Ich muss zurück die LETZTE EINGEFÜGTE ID aus Tabelle1, wenn ich führen Sie die folgende MySql-Abfrage:
INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();
Verstehen Sie den aktuellen code, wird der gerade wieder die LETZTE INSERT-ID von Tabelle2 anstelle von "Tabelle1", wie bekomme ich die id aus Tabelle1, auch wenn ich insert into table2 zwischen?
InformationsquelleAutor der Frage Martin | 2010-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie speichern könnte die Letzte insert-id in einer Variablen :
Oder man die max id frm Tabelle1
InformationsquelleAutor der Antwort Julien Hoarau
Da Sie tatsächlich gespeichert werden, ist die Vorherige LAST_INSERT_ID() in der zweiten Tabelle, können Sie es von dort:
InformationsquelleAutor der Antwort Artem Goutsoul
Diese ermöglicht Ihnen das einfügen einer Zeile in 2 verschiedenen Tabellen und erstellt eine Referenz auf die beiden Tabellen zu.
InformationsquelleAutor der Antwort Ospho
Wäre es möglich, speichern Sie die last_id_in_table1 variable in eine php-variable, um Sie später zu verwenden?
Mit diesem last_id muss ich anfügen, einige Datensätze in einer anderen Tabelle mit dieser last_id, also brauche ich:
1) führen Sie eine INSERT-und Holen Sie sich die last_id_in_table1
2) Für jeden indeterminated Zeilen in einer anderen Tabelle AKTUALISIEREN diese Zeilen mit der last_id_insert erzeugt in den Einsatz.
InformationsquelleAutor der Antwort Angel
Ich hatte das gleiche problem in der bash, und ich Tue so etwas wie dieses:
welche gut funktioniert:-) Aber
nicht funktionieren. Denn nach dem ersten Befehl, der shell wird abgemeldet von mysql-und wieder eingeloggt, für den zweiten Befehl, und dann die variable @last_insert_id nicht mehr.
Meine Lösung ist:
Vielleicht jemand auf der Suche nach einer Lösung ein bash 🙂
InformationsquelleAutor der Antwort Holger Seitter
Für die Letzte und vorletzte:
InformationsquelleAutor der Antwort user2541471
Nur für Rodrigo post, anstelle von LAST_INSERT_ID() in der Abfrage, die Sie verwenden können, SELECT MAX(id) FROM Tabelle1;, aber Sie müssen (),
InformationsquelleAutor der Antwort Pavlen
Haben wir nur eine person, die in Datensätzen, so dass ich führen Sie die folgende Abfrage sofort nach dem einfügen:
Dies ruft die Letzte id aus der Datenbank.
InformationsquelleAutor der Antwort sspence65
Wenn Sie brauchen, um aus mysql, nachdem Sie Ihre Abfrage, die Letzte auto-inkrementelle id ohne weitere Abfrage, legen Sie in Ihrem code:
InformationsquelleAutor der Antwort Luca Perico