Ich habe eine MySQL-Frage, die meiner Meinung nach recht einfach sein muss. Ich muss die LAST INSERTED ID aus Tabelle1 zurückgeben, wenn ich die folgende MySQL-Abfrage ausführe:
INSERT INTO table1 (title,userid) VALUES ('test',1);
INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(),4,1);
SELECT LAST_INSERT_ID();
Wie Sie verstehen können, gibt der aktuelle Code nur die LAST INSERT-ID von Tabelle2 anstelle von Tabelle1 zurück. Wie kann ich die ID von Tabelle1 abrufen, selbst wenn ich zwischenzeitlich in Tabelle2 einfüge?
mysql
insert
last-insert-id
Martin
quelle
quelle
Da Sie die vorherige LAST_INSERT_ID () tatsächlich in der zweiten Tabelle gespeichert haben, können Sie sie von dort abrufen:
quelle
Auf diese Weise können Sie eine Zeile in zwei verschiedene Tabellen einfügen und einen Verweis auf beide Tabellen erstellen.
quelle
Ich hatte das gleiche Problem bei Bash und mache so etwas:
was gut funktioniert :-) Aber
arbeite nicht Denn nach dem ersten Befehl wird die Shell von MySQL abgemeldet und für den zweiten Befehl erneut angemeldet, und dann wird die Variable @last_insert_id nicht mehr gesetzt. Meine Lösung ist:
Vielleicht sucht jemand nach einer Lösung eine Bash :-)
quelle
LAST_INSERT_ID
Nur für die aktive Verbindung verfügbar.#mysq
-Befehlsverbindung für jeden Befehl. Sie können mit demmysql
Befehl eine Verbindung zum Server herstellen und Ihre Abfragen einfügen, oder Sie können eine Textdatei erstellen und denmysql
Befehl mit Umleitung von der txt-Datei akamysql [connection option] < txt.file
Wir haben nur eine Person, die Datensätze eingibt, daher führe ich die folgende Abfrage unmittelbar nach dem Einfügen aus:
Dadurch wird die letzte ID aus der Datenbank abgerufen.
quelle
Für keine InnoDB-Lösung: Sie können ein Verfahren verwenden
don't forgot to set the the delimiter for storing the procedure with ;
Und du kannst es benutzen ...
quelle
Ist es möglich, die Variable last_id_in_table1 in einer PHP-Variablen zu speichern, um sie später zu verwenden?
Mit dieser last_id muss ich einige Datensätze in einer anderen Tabelle mit dieser last_id anhängen, also brauche ich:
1) Machen Sie ein INSERT und holen Sie sich die last_id_in_table1
2) Für unbestimmte Zeilen in einer anderen Tabelle AKTUALISIEREN Sie diese Zeilen mit der in der Einfügung generierten last_id_insert.
quelle
LAST_INSERT_ID()
Versuchen Sie stattdessen, diesen zu verwendenquelle
Zum letzten und vorletzten:
quelle
Nur um für Rodrigo-Post hinzuzufügen, können Sie anstelle von LAST_INSERT_ID () in der Abfrage SELECT MAX (id) FROM table1; verwenden, aber Sie müssen () verwenden,
quelle
Wenn Sie nach Ihrer Abfrage die letzte automatisch inkrementelle ID ohne weitere Abfrage von MySQL benötigen, geben Sie Ihren Code ein:
quelle