Artikelverzeichnis
MySQLWie erstelle ich eine Sequenz?MySQL-DatenbankErstellen Sie eine automatisch inkrementierende Sequenzanweisung
Verwendung von MySQL-Sequenzen
Die MySQL-Sequenz ist eine Reihe von Ganzzahlen: 1, 2, 3, ..., da eine Datentabelle nur einen Primärschlüssel für die automatische Inkrementierung eines Felds haben kann, können Sie die MySQL-Sequenz verwenden, wenn Sie eine automatische Inkrementierung anderer Felder erreichen möchten erreichen.
In diesem Kapitel beschreiben wir die Verwendung von MySQL-Sequenzen.
Verwenden Sie AUTO_INCREMENT
Der einfachste Weg, Sequenzen in MySQL zu verwenden, besteht darin, MySQL AUTO_INCREMENT zum Definieren von Spalten zu verwenden.
Beispiel
Die Datentabelle Insekt wird im folgenden Beispiel erstellt, wobei kein Wert für automatisches Wachstum angegeben ist.
mysql > CREATE TABLE昆虫 - > (- > id INT UNSIGNED NOT NULL AUTO_INCREMENT ,- > PRIMARY KEY (id ),- > name VARCHAR (30 )NOT NULL ,#昆虫类型- > 日期DATE NOT NULL ,#收集日期- > origin VARCHAR (30 )NOT NULL #where collected ); 查询OK ,0 行受影响(0.02 秒) mysql > INSERT INTO insects (id ,name ,date ,origin )VALUES - > (NULL ,'housefly' ,'2001-09-10' ,'kitchen' ),- > (NULL ,'millipede' ,'2001-09-10 ' ,'车道' ),- > (NULL ,'grasshopper' ,'2001-09-10' ,'front yard' ); 查询OK , 秒)记录:3 重复:0 警告:0 mysql > 选择* 从昆虫ORDER BY ID ; + ---- + ------------- + ------------ + ------------ + | id | 名字 | 日期 | 起源 | + ---- + ------------- + ------------ + ------------ + | 1 | 家蝇 | 2001 - 09 - 10 | 厨房 | | 2 | 千足虫 | 2001 - 09 - 10 | 车道 | | 3 | 蚱蜢| 2001 - 09 - 10 | 前院| + ---- + ------------- + ------------ + ------------ + 3 行中集(0.00 秒)
Holen Sie sich den AUTO_INCREMENT-Wert
Im MySQL-Client können Sie die Funktion LAST_INSERT_ID() in SQL verwenden, um den Wert der letzten automatisch inkrementierten Spalte abzurufen, die in die Tabelle eingefügt wurde.
Entsprechende Funktionen werden auch im PHP- oder PERL-Skript bereitgestellt, um den Wert der letzten in die Tabelle eingefügten Autoinkrement-Spalte zu erhalten.
PERL-Instanz
Verwenden Sie die Eigenschaft mysql_insertid, um den Wert von AUTO_INCREMENT abzurufen.Beispiele sind wie folgt:
$ dbh - > do (“INSERT INTO insect(name,date,origin) VALUES('moth','2001-09-14','windowsill')“ ); my $ seq = $ dbh - > { mysql_insertid };
PHP-Beispiel
PHP erhält den Wert der Spalte AUTO_INCREMENT in der ausgeführten Insert-SQL-Anweisung durch die Funktion mysql_insert_id().
mysql_query (“INSERT INTO昆虫(名字,日期,起源) VALUES('moth','2001-09-14','windowsill')“ ,$ conn_id ); $ seq = mysql_insert_id ($ conn_id );
Sequenz 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 dies tun, indem Sie die automatisch inkrementierende Spalte löschen und dann erneut hinzufügen.Dieser Vorgang muss jedoch, wenn überhaupt, sehr vorsichtig sein.Gleichzeitig mit dem Löschen werden neue Datensätze hinzugefügt, und es kann zu Datenverwechslungen kommen.Die Vorgänge sind wie folgt:
mysql > ALTER TABLE昆虫DROP ID ; mysql > ALTER TABLE昆虫 - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,- > ADD PRIMARY KEY (id );
Legen Sie den Startwert der Sequenz fest
Im Allgemeinen ist der Startwert der Sequenz 1, aber wenn Sie einen Startwert von 100 angeben müssen, können wir dies mit der folgenden Anweisung tun:
mysql > CREATE TABLE昆虫 - > (- > id INT UNSIGNED NOT NULL AUTO_INCREMENT ,- > PRIMARY KEY (id ),- > name VARCHAR (30 )NOT NULL ,- > date DATE NOT NULL ,- > origin VARCHAR (30 )NOT NULL )engine = innodb auto_increment = 100 charset = utf8 ;
Oder Sie können auch die folgende Anweisung verwenden, nachdem die Tabelle erfolgreich erstellt wurde:
mysql > ALTER TABLE t AUTO_INCREMENT = 100 ;
Hoffnung Chen Weiliang Blog ( https://www.chenweiliang.com/ ) geteilt "Wie erstellt MySQL eine Sequenz? MySQL-Datenbank zum Erstellen einer selbstinkrementierenden Sequenzanweisung", um Ihnen zu helfen.
Willkommen, um den Link dieses Artikels zu teilen:https://www.chenweiliang.com/cwl-498.html
Um weitere versteckte Tricks freizuschalten🔑, treten Sie unserem Telegram-Kanal bei!
Teilen und liken, wenn es Ihnen gefällt! Ihre Shares und Likes sind unsere ständige Motivation!