Zuletzt eingefügte ID aus einer bestimmten Tabelle

8
%Vor%

Warum gibt diese Abfrage manchmal die letzte eingefügte ID einer anderen Tabelle als table1 zurück? Ich rufe es in Node.js (db-mysql plugin) und ich kann nur Abfragen ausführen.

    
ElSajko 25.08.2012, 20:27
quelle

5 Antworten

18
___ answer44612820 ___

SELECT ID FROM Tabellenname ORDER BY ID DESC LIMIT 1

    
___ qstntxt ___
%Vor%

Warum gibt diese Abfrage manchmal die letzte eingefügte ID einer anderen Tabelle als table1 zurück? Ich rufe es in Node.js (db-mysql plugin) und ich kann nur Abfragen ausführen.

    
___ answer38577212 ___

Ich wähle normalerweise das automatisch inkrementierte ID-Feld aus, sortiere nach dem absteigenden Feld und limitiere Ergebnisse auf 1. Zum Beispiel kann ich in einer Wordpress-Datenbank die letzte ID der wp_options-Tabelle abrufen:

%Vor%

Ich hoffe, das hilft.

Bearbeiten - Es kann sinnvoll sein, die Tabelle zu sperren, um Aktualisierungen der Tabelle zu vermeiden, die dazu führen können, dass eine falsche ID zurückgegeben wird.

%Vor%     
___ tag123mysql ___ MySQL ist ein freies, relationales Datenbank-Managementsystem (RDBMS), das die strukturierte Abfragesprache (SQL) verwendet. Verwenden Sie dieses Tag NICHT für andere DBs wie SQL Server, SQLite usw. Dies sind verschiedene DBs, die alle SQL verwenden, um die Daten zu verwalten. ___ answer42787248 ___

Versuchen Sie es. Das funktioniert.

%Vor%     
___ antwort12125444 ___

LAST_INSERT_ID () kann Ihnen nur die ID der zuletzt automatisch erzeugten ID für die gesamte Datenbankverbindung mitteilen, nicht für jede einzelne Tabelle, weshalb die Abfrage auch nur% co_de lesen sollte % - ohne Angabe einer Tabelle. Sobald Sie eine weitere INSERT-Abfrage für diese Verbindung auslösen, wird sie überschrieben. Wenn Sie die generierte ID beim Einfügen in eine Tabelle verwenden möchten, müssen Sie unmittelbar nach dem Ausführen von SELECT LAST_INSERT_ID() ausführen (oder eine API-Funktion verwenden, die dies für Sie erledigt).

Wenn Sie die neueste ID in einer beliebigen Tabelle haben möchten, müssen Sie SELECT LAST_INSERT_ID() für diese Tabelle eingeben, wobei SELECT MAX(id) der Name Ihrer ID-Spalte ist. Dies ist jedoch nicht unbedingt die zuletzt generierte ID, falls die Zeile gelöscht wurde, noch ist sie notwendigerweise eine aus Ihrer Verbindung generierte ID, falls eine andere Verbindung zwischen Ihrem eigenen INSERT und Ihrer Auswahl der ID einen INSERT durchführt.

(Für den Datensatz gibt Ihre Abfrage tatsächlich N Zeilen zurück, die die zuletzt generierte ID für diese Datenbankverbindung enthalten, wobei N die Anzahl der Zeilen in Tabelle 1 ist.)

    
___ answer30056395 ___

Schauen Sie sich doc an (vielleicht ist es zu spät aber nur als Referenz) Ссылка

    
___ qstnhdr ___ Zuletzt eingefügte ID aus einer bestimmten Tabelle ___
Michael Madsen 25.08.2012, 20:36
quelle
1

Schauen Sie sich doc an (vielleicht ist es zu spät aber nur als Referenz) Ссылка

    
Whisher 05.05.2015 14:53
quelle
1

SELECT ID FROM Tabellenname ORDER BY ID DESC LIMIT 1

    
Hitesh 18.06.2017 07:47
quelle
0

Ich wähle normalerweise das automatisch inkrementierte ID-Feld aus, sortiere nach dem absteigenden Feld und limitiere Ergebnisse auf 1. Zum Beispiel kann ich in einer Wordpress-Datenbank die letzte ID der wp_options-Tabelle abrufen:

%Vor%

Ich hoffe, das hilft.

Bearbeiten - Es kann sinnvoll sein, die Tabelle zu sperren, um Aktualisierungen der Tabelle zu vermeiden, die dazu führen können, dass eine falsche ID zurückgegeben wird.

%Vor%     
recurse 25.07.2016 20:51
quelle
0

Versuchen Sie es. Das funktioniert.

%Vor%     
Saranga Jayaruwan 14.03.2017 13:24
quelle

Tags und Links