Wie erstellt MySQL Sequenzen? MySQL-Datenbankerstellungs-Auto-Increment-Sequence-Anweisung

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 ; 

发表 评论

Ihre E-Mail-Adresse wird nicht veröffentlicht. 必填 项 已 已 * 标注

Nach oben scrollen