Jak MySQL vytváří sekvence? Auto-inkrementace sekvence vytvoření databáze MySQL

MySQLJak vytvořit sekvenci?MySQL databázeVytvořte příkaz automatické inkrementace sekvence

Použití sekvence MySQL

Sekvence MySQL je sada celých čísel: 1, 2, 3, ..., protože datová tabulka může mít pouze jeden primární klíč automatického přírůstku pole, pokud chcete dosáhnout automatického přírůstku dalších polí, můžete použít sekvenci MySQL k dosáhnout.

V této kapitole popíšeme, jak používat sekvence MySQL.


Použijte AUTO_INCREMENT

Nejjednodušším způsobem použití sekvencí v MySQL je použití MySQL AUTO_INCREMENT k definování sloupců.

Instance

V následujícím příkladu je vytvořena datová tabulka Insect, ve které není zadána žádná hodnota pro automatický růst.

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   
     

  

Získejte hodnotu AUTO_INCREMENT

V klientovi MySQL můžete pomocí funkce LAST_INSERT_ID() v SQL získat hodnotu posledního automaticky inkrementovaného sloupce vloženého do tabulky.

Odpovídající funkce jsou také poskytovány ve skriptu PHP nebo PERL pro získání hodnoty posledního automaticky inkrementovaného sloupce vloženého do tabulky.

instance PERL

Pomocí vlastnosti mysql_insertid získáte hodnotu AUTO_INCREMENT.Příklady jsou následující:

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

Příklad PHP

PHP získá hodnotu sloupce AUTO_INCREMENT v provedeném příkazu insert SQL pomocí funkce mysql_insert_id().

mysql_query “INSERT INTO昆虫(名字,日期,起源)
VALUES('moth','2001-09-14','windowsill')“ $ conn_id ); 
$ seq = mysql_insert_id $ conn_id );

resetovací sekvence

Pokud odstraníte více záznamů v datové tabulce a chcete změnit uspořádání sloupce AUTO_INCREMENT zbývajících dat, můžete tak učinit odstraněním sloupce s automatickým přírůstkem a jeho opětovným přidáním.Tato operace však musí být velmi opatrná, pokud vůbec.Současně s mazáním se přidávají nové záznamy a může dojít k záměně dat. Operace jsou následující:

mysql > ALTER TABLE昆虫DROP ID ; 
mysql > ALTER TABLE昆虫
     - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST - > ADD PRIMARY KEY id );
    

Nastavte počáteční hodnotu sekvence

Obecně je počáteční hodnota sekvence 1, ale pokud potřebujete zadat počáteční hodnotu 100, můžeme to udělat pomocí následujícího příkazu:

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 ; 
    
    
     
    
    

Nebo můžete také použít následující příkaz po úspěšném vytvoření tabulky:

mysql > ALTER TABLE t AUTO_INCREMENT = 100 ; 

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shared "Jak MySQL vytváří sekvenci? MySQL databáze k vytvoření samo-inkrementálního příkazu sekvence“, aby vám pomohl.

Vítejte u sdílení odkazu na tento článek:https://www.chenweiliang.com/cwl-498.html

Vítejte na telegramovém kanálu blogu Chen Weiliang, kde získáte nejnovější aktualizace!

🔔 Buďte první, kdo získá cenný „Průvodce používáním nástroje AI pro obsahový marketing ChatGPT“ v hlavním adresáři kanálu! 🌟
📚 Tento průvodce má obrovskou hodnotu, 🌟Toto je vzácná příležitost, nenechte si ji ujít! ⏰⌛💨
Sdílejte a lajkujte, pokud se vám líbí!
Vaše sdílení a lajky jsou naší neustálou motivací!

 

发表 评论

Vaše e-mailová adresa nebude zveřejněna. 必填 项 已 用 * 标注

滚动 到 顶部