Ako MySQL vytvára sekvencie? Auto-Increment sekvencie vytvorenia databázy MySQL

MySQLAko vytvoriť sekvenciu?Databáza MySQLVytvorte príkaz s automatickou inkrementáciou sekvencie

Použitie sekvencie MySQL

Sekvencia MySQL je množina celých čísel: 1, 2, 3, ..., keďže dátová tabuľka môže mať iba jeden primárny kľúč automatického zvýšenia poľa, ak chcete dosiahnuť automatické zvýšenie ďalších polí, môžete použiť MySQL postupnosť dosiahnuť.

V tejto kapitole popíšeme, ako používať MySQL sekvencie.


Použite AUTO_INCREMENT

Najjednoduchší spôsob použitia sekvencií v MySQL je použiť MySQL AUTO_INCREMENT na definovanie stĺpcov.

Inštancia

Tabuľka údajov Hmyz je vytvorená v nasledujúcom príklade, v ktorom nie je zadaná žiadna hodnota na dosiahnutie automatického rastu.

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ískajte hodnotu AUTO_INCREMENT

V klientovi MySQL môžete použiť funkciu LAST_INSERT_ID() v SQL na získanie hodnoty posledného automaticky inkrementovaného stĺpca vloženého do tabuľky.

Zodpovedajúce funkcie sú tiež poskytnuté v skripte PHP alebo PERL na získanie hodnoty posledného stĺpca automatického zvýšenia vloženého do tabuľky.

Inštancia PERL

Na získanie hodnoty AUTO_INCREMENT použite vlastnosť mysql_insertid.Príklady sú nasledovné:

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

Príklad PHP

PHP získa hodnotu stĺpca AUTO_INCREMENT v vykonanom príkaze SQL SQL pomocou funkcie mysql_insert_id().

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

resetovacia sekvencia

Ak vymažete viacero záznamov v tabuľke údajov a chcete zmeniť usporiadanie stĺpca AUTO_INCREMENT zostávajúcich údajov, môžete tak urobiť odstránením stĺpca s automatickým prírastkom a jeho opätovným pridaním.Táto operácia však musí byť veľmi opatrná, ak vôbec.Súčasne s vymazaním sa pridávajú nové záznamy a môže dôjsť k zámene údajov. Operácie sú nasledovné:

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

Nastavte počiatočnú hodnotu sekvencie

Vo všeobecnosti je počiatočná hodnota sekvencie 1, ale ak potrebujete zadať počiatočnú hodnotu 100, môžeme to urobiť pomocou nasledujúceho prí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 ; 
    
    
     
    
    

Alebo môžete použiť aj nasledujúci príkaz po úspešnom vytvorení tabuľky:

mysql > ALTER TABLE t AUTO_INCREMENT = 100 ; 

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) shared „Ako MySQL vytvára sekvenciu? Databáza MySQL na vytvorenie samozvyšujúceho sa príkazu sekvencie“, ktorá vám pomôže.

Vitajte pri zdieľaní odkazu na tento článok:https://www.chenweiliang.com/cwl-498.html

Vitajte na telegramovom kanáli blogu Chen Weiliang, kde získate najnovšie aktualizácie!

🔔 Buďte prvý, kto získa cennú „Sprievodcu používaním nástroja AI pre obsahový marketing ChatGPT“ v hlavnom adresári kanála! 🌟
📚 Táto príručka obsahuje obrovskú hodnotu, 🌟Toto je vzácna príležitosť, nenechajte si ju ujsť! ⏰⌛💨
Ak sa vám páči, zdieľajte a lajkujte!
Vaše zdieľanie a lajky sú našou neustálou motiváciou!

 

发表 评论

Vaša emailová adresa nebude zverejnená. 必填 项 已 用 * Štítok

prejdite na začiatok