Heim > Datenbank > MySQL-Tutorial > [MySQL-Tutorial] Verwendung der MySQL-Sequenz

[MySQL-Tutorial] Verwendung der MySQL-Sequenz

黄舟
Freigeben: 2016-12-26 17:28:51
Original
1170 Leute haben es durchsucht

MySQL-Sequenz verwendet

MySQL-Sequenz ist eine Menge von ganzen Zahlen: 1, 2, 3, ..., da eine Datentabelle nur ein Feld mit einem automatisch inkrementierenden Primärschlüssel haben kann, wenn Sie möchten um auch andere Felder zu implementieren Um eine automatische Erhöhung zu erreichen, können Sie MySQL-Sequenzen verwenden, um dies zu erreichen.

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

AUTO_INCREMENT verwenden

Die einfachste Möglichkeit, Sequenzen in MySQL zu verwenden, besteht darin, MySQL AUTO_INCREMENT zum Definieren von Spalten zu verwenden.

Beispiel

Im folgenden Beispiel wird die Datentabelle „insekt“ erstellt. Die ID in „insekt“ kann automatisch wachsen, ohne einen Wert anzugeben.

mysql> CREATE TABLE insect
    -> (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> PRIMARY KEY (id),
    -> name VARCHAR(30) NOT NULL, # type of insect
    -> date DATE NOT NULL, # date collected
    -> origin VARCHAR(30) NOT NULL # where collected
);
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO insect (id,name,date,origin) VALUES
    -> (NULL,'housefly','2001-09-10','kitchen'),
    -> (NULL,'millipede','2001-09-10','driveway'),
    -> (NULL,'grasshopper','2001-09-10','front yard');
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM insect ORDER BY id;
+----+-------------+------------+------------+
| id | name        | date       | origin     |
+----+-------------+------------+------------+
|  1 | housefly    | 2001-09-10 | kitchen    |
|  2 | millipede   | 2001-09-10 | driveway   |
|  3 | grasshopper | 2001-09-10 | front yard |
+----+-------------+------------+------------+
3 rows in set (0.00 sec)
Nach dem Login kopieren

Rufen Sie den AUTO_INCREMENT-Wert ab

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

Entsprechende Funktionen werden auch in PHP- oder PERL-Skripten bereitgestellt, um den Wert der letzten in die Tabelle eingefügten Auto-Inkrement-Spalte zu erhalten.

PERL-Instanz

Verwenden Sie das Attribut mysql_insertid, um den Wert von AUTO_INCREMENT abzurufen. Das Beispiel sieht wie folgt aus:

$dbh->do ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')");
my $seq = $dbh->{mysql_insertid};
Nach dem Login kopieren

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 insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')", $conn_id);
$seq = mysql_insert_id ($conn_id);
Nach dem Login kopieren

Reihenfolge zurücksetzen

Wenn Sie mehrere Datensätze in der Datentabelle löschen und die AUTO_INCREMENT-Spalte der verbleibenden Daten neu anordnen möchten, können Sie die Auto-Inkrement-Spalte löschen und dann erneut hinzufügen, um dies zu erreichen. Allerdings müssen Sie bei diesem Vorgang sehr vorsichtig sein. Wenn beim Löschen neue Datensätze hinzugefügt werden, kann es zu einem Datenchaos kommen. Die Operation ist wie folgt:

mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
    -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
    -> ADD PRIMARY KEY (id);
Nach dem Login kopieren

Legen Sie den Startwert der Sequenz fest

Im Allgemeinen ist der Startwert der Sequenz 1, wenn Sie jedoch einen Startwert von 100 angeben müssen , dann können wir die folgende Anweisung übergeben, um Folgendes zu erreichen:

mysql> CREATE TABLE insect
    -> (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT = 100,
    -> PRIMARY KEY (id),
    -> name VARCHAR(30) NOT NULL, # type of insect
    -> date DATE NOT NULL, # date collected
    -> origin VARCHAR(30) NOT NULL # where collected
);
Nach dem Login kopieren

Oder Sie können auch die folgende Anweisung implementieren, nachdem die Tabelle erfolgreich erstellt wurde:

mysql> ALTER TABLE t AUTO_INCREMENT = 100;
Nach dem Login kopieren


Das Obige ist der Inhalt des [MySQL-Tutorials] MySQL-Sequenzverwendung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage