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

Beispiel einer Methode zur Fehlerbehebung beim Lösen von Nginx-Portkonflikten

Problembeschreibung Ein Spring + Angular-Projekt ...

Natives js zum Erzielen eines Akkordeoneffekts

Auch bei der tatsächlichen Entwicklung von Websei...

Vue implementiert die Countdown-Komponente für zweite Kills

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

Das Prinzip und die Implementierung des JS-Drag-Effekts

Die Drag-Funktion wird hauptsächlich verwendet, u...

Lösen Sie den Konflikt zwischen Docker und VMware

1. Docker-Startproblem: Problem gelöst: Sie müsse...

So installieren Sie mehrere mysql5.7.19 (tar.gz)-Dateien unter Linux

Informationen zur ersten Installation der MySQL-5...

Gemeinsame MySQL-Sicherungsbefehle und Shell-Sicherungsskripte

Um mehrere Datenbanken zu sichern, können Sie den...