Wie erhalte ich den aktuellen AUTO_INCREMENT-Wert für eine Tabelle in MySQL?
mysql
auto-increment
bparise
quelle
quelle
Antworten:
Mit dieser Abfrage können Sie alle Tabellendaten abrufen:
Mit dieser Abfrage können Sie genau diese Informationen abrufen:
quelle
DATABASE()
anstelle des expliziten Datenbanknamens verwendet werden.SELECT MAX(id) FROM table_name
?Ich glaube, Sie suchen nach der LAST_INSERT_ID () -Funktion von MySQL . Wenn Sie sich in der Befehlszeile befinden, führen Sie einfach Folgendes aus:
Sie können diesen Wert auch über eine SELECT-Abfrage erhalten:
quelle
Wenn Sie nur die Nummer wissen möchten, anstatt sie in einer Abfrage zu erhalten, können Sie Folgendes verwenden:
Sie sollten das auto_increment unten sehen
quelle
1
.Obwohl die Antwort von methai korrekt ist, wenn Sie die Abfrage manuell ausführen, tritt ein Problem auf, wenn 2 gleichzeitige Transaktionen / Verbindungen diese Abfrage tatsächlich zur Laufzeit in der Produktion ausführen (zum Beispiel).
Nur manuell in der MySQL Workbench mit 2 gleichzeitig geöffneten Verbindungen versucht:
Transaktion 1:
Transaktion 2:
Das Einfügen von Transaktion 1 ist in Ordnung: Das Einfügen von Transaktion 2 ist fehlerhaft: Fehlercode: 1062. Doppelter Eintrag '21' für Schlüssel 'PRIMARY'.
Eine gute Lösung wäre die Antwort von jvdub , da pro Transaktion / Verbindung die 2 Einfügungen lauten:
Transaktion 1:
Transaktion 2:
Aber wir müssen die last_insert_id () direkt nach dem Einfügen ausführen ! Und wir können diese ID wiederverwenden, um sie in andere Tabellen einzufügen, in denen ein Fremdschlüssel erwartet wird!
Außerdem können wir die beiden Abfragen nicht wie folgt ausführen:
weil wir tatsächlich daran interessiert sind, diese ID in einer anderen Tabelle zu erfassen / wiederzuverwenden oder zurückzukehren!
quelle
last_insert_id()
AUTO_INCREMENT
Wert abgerufen werden soll.ausführbarer Beispielcode für mysqli:
quelle
Wenn die Spalte in SQL Server automatisch inkrementiert wird, verwenden Sie die folgende Abfrage, um den aktuellen automatisch inkrementierten Wert anzuzeigen, und wenn Sie diesen Wert für diese Spalte bearbeiten möchten.
quelle
Abfrage zur Überprüfung der prozentualen "Verwendung" von AUTO_INCREMENT für alle Tabellen eines bestimmten Schemas (außer Spalten mit dem Typ bigint ohne Vorzeichen ):
quelle
Ich habe nach dem gleichen gesucht und schließlich eine statische Methode in einer Helper-Klasse erstellt (in meinem Fall habe ich sie App \ Helpers \ Database genannt).
Die Methode
Um die Methode aufzurufen und MySql AUTO_INCREMENT abzurufen, verwenden Sie einfach Folgendes:
Ich hoffe es hilft.
quelle