Artikel Verzeechnes
MySQLWéi eng Sequenz ze kreéieren?MySQL DatebankErstellt eng auto-incrementing Sequenz Ausso
MySQL Sequenz Benotzung
MySQL Sequenz ass eng Rei vun ganz Zuelen: 1, 2, 3, ..., well eng Datentabell nëmmen ee Feld Auto-Inkrement Primärschlëssel kann hunn, wann Dir automatesch Inkrement vun anere Felder wëllt erreechen, kënnt Dir MySQL Sequenz benotze fir erreechen.
An dësem Kapitel wäerte mir beschreiwen wéi Dir MySQL Sequenzen benotzt.
Benotzt AUTO_INCREMENT
Deen einfachste Wee fir Sequenzen a MySQL ze benotzen ass MySQL AUTO_INCREMENT ze benotzen fir Spalten ze definéieren.
Instanz
D'Datentabelle Insekt gëtt am folgende Beispill erstallt, wou kee Wäert fir automatesch Wuesstum uginn ass.
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 秒)
Kritt AUTO_INCREMENT Wäert
Am MySQL Client kënnt Dir d'LAST_INSERT_ID () Funktioun an SQL benotzen fir de Wäert vun der leschter auto-inkrementéierter Kolonn an d'Tabell agefouert ze kréien.
Korrespondéiert Funktiounen ginn och am PHP- oder PERL-Skript zur Verfügung gestallt fir de Wäert vun der leschter Auto-Inkrement-Kolonn ze kréien, déi an d'Tabell agefouert gëtt.
Perl Beispill
Benotzt d'Mysql_insertid Eegeschafte fir de Wäert vun AUTO_INCREMENT ze kréien.Beispiller sinn wéi follegt:
$ dbh - > do (“INSERT INTO insect(name,date,origin) VALUES('moth','2001-09-14','windowsill')“ ); my $ seq = $ dbh - > { mysql_insertid };
PHP Beispill
PHP kritt de Wäert vun der AUTO_INCREMENT Kolonn an der ausgefouerter Insert SQL Ausso duerch d'mysql_insert_id () Funktioun.
mysql_query (“INSERT INTO昆虫(名字,日期,起源) VALUES('moth','2001-09-14','windowsill')“ ,$ conn_id ); $ seq = mysql_insert_id ($ conn_id );
Sequenz zrécksetzen
Wann Dir e puer Opzeechnungen an der Datentabelle läscht an d'AUTO_INCREMENT Kolonn vun de verbleiwen Donnéeën nei arrangéiere wëllt, kënnt Dir dat maachen andeems Dir d'Auto-inkrementéierend Kolonn läscht an se dann nach eng Kéier bäidréit.Allerdéngs muss dës Operatioun ganz virsiichteg sinn, wann iwwerhaapt.Zur selwechter Zäit vun der Läschung ginn nei Opzeechnunge bäigefüügt, an et kann Datenverwirrung ginn. D'Operatiounen sinn wéi follegt:
mysql > ALTER TABLE昆虫DROP ID ; mysql > ALTER TABLE昆虫 - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,- > ADD PRIMARY KEY (id );
Setzt den Startwäert vun der Sequenz
Am Allgemengen ass de Startwäert vun der Sequenz 1, awer wann Dir e Startwäert vun 100 muss spezifizéieren, da kënne mir et mat der folgender Ausso maachen:
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 Dir kënnt och déi folgend Ausso benotzen nodeems d'Tabelle erfollegräich erstallt gouf:
mysql > ALTER TABLE t AUTO_INCREMENT = 100 ;
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeelt "Wéi erstellt MySQL eng Sequenz? MySQL Datebank fir selbststeigend Sequenzerklärung ze kreéieren", fir Iech ze hëllefen.
Wëllkomm de Link vun dësem Artikel ze deelen:https://www.chenweiliang.com/cwl-498.html
Wëllkomm op dem Telegram Kanal vum Chen Weiliang säi Blog fir déi lescht Updates ze kréien!
📚 Dëse Guide enthält en enorme Wäert, 🌟 Dëst ass eng selten Geleeënheet, verpasst et net! ⏰⌛💨
Deelen a liken wann dir wëllt!
Är Deelen a Likes sinn eis kontinuéierlech Motivatioun!