Hvordan lager MySQL sekvenser? MySQL-databaseoppretting auto-increment sekvenssetning

MySQLHvordan lage en sekvens?MySQL-databaseOpprett en auto-inkrementerende sekvenssetning

MySQL-sekvensbruk

MySQL-sekvensen er et sett med heltall: 1, 2, 3, ..., siden en datatabell bare kan ha ett felt auto-inkrement primærnøkkel, hvis du ønsker å oppnå automatisk økning av andre felt, kan du bruke MySQL rekkefølge å oppnå.

I dette kapittelet vil vi beskrive hvordan du bruker MySQL-sekvenser.


Bruk AUTO_INCREMENT

Den enkleste måten å bruke sekvenser i MySQL er å bruke MySQL AUTO_INCREMENT for å definere kolonner.

Forekomst

Datatabellen Insect opprettes i følgende eksempel, der ingen verdi er spesifisert for automatisk vekst.

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   
     

  

Få AUTO_INCREMENT-verdi

I MySQL-klienten kan du bruke LAST_INSERT_ID()-funksjonen i SQL for å få verdien av den siste automatisk inkrementerte kolonnen satt inn i tabellen.

Tilsvarende funksjoner er også gitt i PHP- eller PERL-skriptet for å få verdien av den siste auto-increment-kolonnen satt inn i tabellen.

PERL-forekomst

Bruk egenskapen mysql_insertid for å få verdien av AUTO_INCREMENT.Eksempler er som følger:

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

PHP eksempel

PHP henter verdien av AUTO_INCREMENT-kolonnen i den utførte insert SQL-setningen gjennom funksjonen mysql_insert_id().

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

tilbakestille sekvensen

Hvis du sletter flere poster i datatabellen og ønsker å omorganisere AUTO_INCREMENT-kolonnen for de gjenværende dataene, kan du gjøre det ved å slette den automatiske inkrementeringskolonnen og deretter legge den til igjen.Denne operasjonen må imidlertid være svært forsiktig, hvis i det hele tatt.Samtidig med sletting legges det til nye poster, og det kan oppstå dataforvirring Operasjonene er som følger:

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

Still inn startverdien for sekvensen

Generelt er startverdien til sekvensen 1, men hvis du trenger å spesifisere en startverdi på 100, kan vi gjøre det med følgende utsagn:

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 ; 
    
    
     
    
    

Eller du kan også bruke følgende setning etter at tabellen er opprettet:

mysql > ALTER TABLE t AUTO_INCREMENT = 100 ; 

Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delt "Hvordan lager MySQL en sekvens? MySQL-database for å lage selvinkrementerende sekvenssetning", for å hjelpe deg.

Velkommen til å dele lenken til denne artikkelen:https://www.chenweiliang.com/cwl-498.html

Velkommen til Telegram-kanalen til Chen Weiliangs blogg for å få de siste oppdateringene!

🔔 Vær den første til å få den verdifulle "ChatGPT Content Marketing AI Tool Usage Guide" i kanalens toppkatalog! 🌟
📚 Denne guiden inneholder enorm verdi, 🌟Dette er en sjelden mulighet, ikke gå glipp av den! ⏰⌛💨
Del og lik om du vil!
Din deling og likes er vår kontinuerlige motivasjon!

 

发表 评论

E-postadressen din vil ikke offentliggjøres. 必填 项 已 用 * Merkelapp

bla til toppen