Artikola Adresaro
MySQLKiel krei sekvencon?MySQL-datumbazoKreu aŭtomate pligrandigan sinsekvan deklaron
MySQL-sekvenca uzado
MySQL-sekvenco estas aro de entjeroj: 1, 2, 3, ..., ĉar datumtabelo povas nur havi unu kampon aŭtomat-inkrementan ĉefan ŝlosilon, se vi volas atingi aŭtomatan pliigon de aliaj kampoj, vi povas uzi MySQL-sekvencon por atingi.
En ĉi tiu ĉapitro ni priskribos kiel uzi MySQL-sekvencojn.
Uzu AUTO_INCREMENT
La plej facila maniero uzi sekvencojn en MySQL estas uzi MySQL AUTO_INCREMENT por difini kolumnojn.
ekzemplo
La datumtabelo Insekto estas kreita en la sekva ekzemplo, en kiu neniu valoro estas specifita por atingi aŭtomatan kreskon.
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 秒)
Akiru AUTO_INCREMENT valoron
En la MySQL-kliento vi povas uzi la funkcion LAST_INSERT_ID() en SQL por akiri la valoron de la lasta aŭtomate pliigita kolumno enigita en la tabelon.
Ekvivalentaj funkcioj ankaŭ estas provizitaj en la PHP aŭ PERL-skripto por akiri la valoron de la lasta aŭto-pliiga kolumno enigita en la tabelon.
PERL ekzemplo
Uzu la posedaĵon mysql_insertid por akiri la valoron de AUTO_INCREMENT.Ekzemploj estas kiel sekvas:
$ dbh - > do (“INSERT INTO insect(name,date,origin) VALUES('moth','2001-09-14','windowsill')“ ); my $ seq = $ dbh - > { mysql_insertid };
PHP ekzemplo
PHP akiras la valoron de la AUTO_INCREMENT-kolumno en la ekzekutita insert SQL-deklaro per la mysql_insert_id() funkcio.
mysql_query (“INSERT INTO昆虫(名字,日期,起源) VALUES('moth','2001-09-14','windowsill')“ ,$ conn_id ); $ seq = mysql_insert_id ($ conn_id );
restarigi sekvencon
Se vi forigas plurajn rekordojn en la datumtabelo kaj volas rearanĝi la AUTO_INCREMENT-kolumnon de la ceteraj datumoj, vi povas fari tion forigante la aŭtomate-inkrementan kolumnon kaj poste aldonante ĝin denove.Tamen, ĉi tiu operacio devas esti tre zorgema, se entute.Samtempe de forigo, novaj rekordoj estas aldonitaj, kaj povas esti datuma konfuzo. La operacioj estas jenaj:
mysql > ALTER TABLE昆虫DROP ID ; mysql > ALTER TABLE昆虫 - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,- > ADD PRIMARY KEY (id );
Agordu la komencan valoron de la sekvenco
Ĝenerale, la komenca valoro de la sekvenco estas 1, sed se vi bezonas specifi komencan valoron de 100, tiam ni povas fari ĝin per la sekva deklaro:
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 ;
Aŭ vi ankaŭ povas uzi la sekvan deklaron post kiam la tabelo estas sukcese kreita:
mysql > ALTER TABLE t AUTO_INCREMENT = 100 ;
Hope Chen Weiliang Blogo ( https://www.chenweiliang.com/ ) konigis "Kiel MySQL kreas sekvencon? MySQL-datumbazo por krei mem-inkrementan sinsekvan deklaron", por helpi vin.
Bonvenon dividi la ligon de ĉi tiu artikolo:https://www.chenweiliang.com/cwl-498.html
Bonvenon al la Telegram-kanalo de la blogo de Chen Weiliang por ricevi la plej novajn ĝisdatigojn!
📚 Ĉi tiu gvidilo enhavas grandegan valoron, 🌟Ĉi tio estas malofta ŝanco, ne maltrafu ĝin! ⏰⌛💨
Kunhavigu kaj ŝatu se vi ŝatas!
Via kundivido kaj ŝatoj estas nia kontinua instigo!