MySQL-Sequenz AUTO_INCREMENT ausführliche Erklärung und Beispielcode

MySQL-Sequenz AUTO_INCREMENT ausführliche Erklärung und Beispielcode

MySQL-Sequenz AUTO_INCREMENT ausführliche Erklärung und Beispielcode

Eine MySQL-Sequenz ist eine Reihe von Ganzzahlen: 1, 2, 3, …. Da eine Datentabelle nur ein automatisch inkrementierendes Primärschlüsselfeld haben kann, können Sie eine MySQL-Sequenz verwenden, wenn Sie eine automatische Inkrementierung für andere Felder erreichen möchten.

In diesem Kapitel stellen wir die Verwendung von MySQL-Sequenzen vor.

Verwenden von AUTO_INCREMENT

Die einfachste Möglichkeit, Sequenzen in MySQL zu verwenden, besteht darin, die Spalte mit MySQL AUTO_INCREMENT zu definieren.

Beispiele

Das folgende Beispiel erstellt eine Datentabelle mit dem Namen „Insekt“. Die ID in „Insekt“ kann automatisch erhöht werden, ohne dass ein Wert angegeben werden muss.

mysql> CREATE TABLE Insekt
  -> (
  -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  -> PRIMÄRSCHLÜSSEL (id),
  -> Name VARCHAR(30) NOT NULL, # Insektenart
  -> Datum DATE NOT NULL, # Datum erfasst
  -> Herkunft VARCHAR(30) NOT NULL # wo gesammelt
);
Abfrage OK, 0 Zeilen betroffen (0,02 Sek.)
mysql> INSERT INTO Insekt (ID, Name, Datum, Herkunft) WERTE
  -> (NULL,'Stubenfliege','10.09.2001','Küche'),
  -> (NULL,'Tausendfüßler','10.09.2001','Einfahrt'),
  -> (NULL,'Heuschrecke','10.09.2001','Vorgarten');
Abfrage OK, 3 Zeilen betroffen (0,02 Sek.)
Datensätze: 3 Duplikate: 0 Warnungen: 0
mysql> SELECT * FROM Insekt ORDER BY ID;
+----+----------+------------+------------+
| ID | Name | Datum | Herkunft |
+----+----------+------------+------------+
| 1 | Stubenfliege | 10.09.2001 | Küche |
| 2 | Tausendfüßler | 10.09.2001 | Auffahrt |
| 3 | Heuschrecke | 10.09.2001 | Vorgarten |
+----+----------+------------+------------+
3 Zeilen im Satz (0,00 Sek.)

AUTO_INCREMENT-Wert abrufen

Im MySQL-Client können Sie die Funktion LAST_INSERT_ID() in SQL verwenden, um den Wert der letzten in die Tabelle eingefügten Auto-Increment-Spalte abzurufen.

In PHP- oder PERL-Skripten stehen auch entsprechende Funktionen zur Verfügung, um den Wert der Auto-Increment-Spalte in der zuletzt eingefügten Tabelle abzurufen.

PERL-Beispiele

Verwenden Sie das Attribut mysql_insertid, um den Wert von AUTO_INCREMENT zu erhalten. Nachfolgend sind einige Beispiele aufgeführt:

$dbh->do ("INSERT INTO Insekt (Name, Datum, Herkunft)
WERTE('Motte','2001-09-14','Fensterbank')");
mein $seq = $dbh->{mysql_insertid};

PHP-Beispiel

PHP verwendet die Funktion mysql_insert_id(), um den Wert der Spalte AUTO_INCREMENT in der ausgeführten SQL-Einfügeanweisung abzurufen.

mysql_query ("INSERT INTO Insekt (Name, Datum, Herkunft)
WERTE('Motte','2001-09-14','Fensterbank')", $conn_id);
: $seq = mysql_insert_id ($conn_id);

Sequenz zurücksetzen

Wenn Sie mehrere Datensätze einer Tabelle löschen und die AUTO_INCREMENT-Spalten der verbleibenden Daten neu anordnen möchten, können Sie dies tun, indem Sie die Auto-Increment-Spalte löschen und anschließend erneut hinzufügen. Dieser Vorgang muss jedoch mit großer Vorsicht durchgeführt werden. Wenn neue Datensätze hinzugefügt werden, während sie gelöscht werden, kann es zu Datenverwirrungen kommen. Die Funktionsweise ist wie folgt:

mysql> ALTER TABLE Insekt DROP ID;
mysql> ALTER TABLE Insekt
  -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
  -> Primärschlüssel (ID) hinzufügen;

Legen Sie den Startwert der Sequenz fest

Normalerweise ist der Startwert der Sequenz 1, wenn Sie aber einen Startwert von 100 angeben müssen, können wir dies mit der folgenden Anweisung tun:

mysql> CREATE TABLE Insekt
  -> (
  -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,
  -> PRIMÄRSCHLÜSSEL (id),
  -> Name VARCHAR(30) NOT NULL, # Insektenart
  -> Datum DATE NOT NULL, # Datum erfasst
  -> Herkunft VARCHAR(30) NOT NULL # wo gesammelt
);

Alternativ können Sie die folgende Anweisung verwenden, um dies zu erreichen, nachdem die Tabelle erfolgreich erstellt wurde:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;

Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, danke für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • MySQL-Installationsdiagramm. Grafisches MySQL-Installationstutorial (detaillierte Anweisungen).
  • Lösung: Verbindung zum MySQL-Server auf localhost (10061) kann nicht hergestellt werden
  • Zusammenfassung der Verwendung des MySQL-Datumsdatentyps und des Zeittyps
  • Super detaillierte Analyse der MySQL Left Join-, Right Join- und Inner Join-Verwendung
  • Installation und Konfiguration von MySQL 5.6 unter Windows mit Screenshots und ausführlicher Anleitung
  • MySQL-Benutzererstellung und Autorisierungsmethode
  • Anweisungen zur Verwendung der MySQL CASE WHEN-Anweisung
  • Detaillierte Einführung in die Unterschiede zwischen int, bigint, smallint und tinyint in MySQL
  • Verwendung von „Replace“ in MySQL
  • Detaillierte Verwendung der MySQL-Update-Anweisung
  • mysql Index hinzufügen mysql wie man einen Index erstellt

<<:  Zusammenfassung der vier Möglichkeiten zum Durchlaufen eines Arrays in JS

>>:  Docker-Installationsmethode und detaillierte Erläuterung der vier Netzwerkmodi von Docker

Artikel empfehlen

Springboot+VUE zur Realisierung von Anmeldung und Registrierung

In diesem Artikelbeispiel wird der spezifische Co...

Karusselleffekte mit JavaScript implementieren

In diesem Artikel wird der spezifische Code für J...

Kurze Analyse der verschiedenen Versionen des mysql.data.dll-Treibers

Hier ist der MySQL-Treiber mysql.data.dll Beachte...

css3-Animation, Ballrollen, js-Steuerung, Animationspause

Mit CSS3 können Animationen erstellt werden, die ...

Vue realisiert den gesamten Prozess der Slider-Drag-Verifizierungsfunktion

Rendern Definieren Sie das Skelett, schreiben Sie...

Lösung für die leere Seite nach einem vue.js-gepackten Projekt

Ich glaube, dass viele Partner, die gerade erst m...

js realisiert Warenkorb-Add- und Subtraktions- sowie Preisberechnungsfunktionen

In diesem Artikel wird der spezifische Code von j...

So verwenden Sie den Vue-Filter

Inhaltsverzeichnis Überblick Filter definieren Ve...

Analyse des Framework-Prinzips des Linux-Eingabesubsystems

Eingabe-Subsystem-Framework Das Linux-Eingabesubs...

So löschen Sie schwebenden Beispielcode in CSS

Überblick Das Rahmendiagramm dieses Artikels ist ...