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

Erläuterung der Truncate Table-Verwendung

TRUNCATE-TABELLE Löscht alle Zeilen in einer Tabe...

Verwenden Sie CSS, um spezielle Logos oder Grafiken zu implementieren

1. Einleitung Da Bilder viel Platz beanspruchen u...

Detaillierte Erläuterung des Redo-Logs und Undo-Logs in MySQL

Die wichtigsten Protokolle im MySQL-Protokollsyst...

So behandeln Sie den vom Linux-System gemeldeten Fehler tcp_mark_head_lost

Problembeschreibung Kürzlich meldete ein Host die...

Detaillierter Vue-Code zur Implementierung der Shuttle-Box-Funktion

Vue - Implementierung der Shuttle-Box-Funktion. D...

Implementierung der CSS-Bildlaufleisten-Stileinstellungen

WebKit-Bildlaufleistenstil zurücksetzen 1. Die Bi...

Unsere Gedanken zur Karriere als UI-Ingenieur

Ich bin seit langer Zeit depressiv, warum? Vor ein...

Details zur Verwendung von Klassenstilen in Vue

Inhaltsverzeichnis 1. Boolesche Werte 2. Ausdruck...