Katalog artykułów
MySQLJak stworzyć sekwencję?Baza danych MySQLUtwórz automatycznie zwiększającą się instrukcję sekwencji
Użycie sekwencji MySQL
Sekwencja MySQL jest zbiorem liczb całkowitych: 1, 2, 3, ..., ponieważ tabela danych może mieć tylko jeden klucz podstawowy automatycznego zwiększania pól, jeśli chcesz uzyskać automatyczne zwiększanie innych pól, możesz użyć kolejność do osiągnięcia.
W tym rozdziale opiszemy, jak używać sekwencji MySQL.
Użyj AUTO_INCREMENT
Najłatwiejszym sposobem użycia sekwencji w MySQL jest użycie MySQL AUTO_INCREMENT do zdefiniowania kolumn.
Instancja
Tabela danych Insect została utworzona w poniższym przykładzie, w którym nie określono wartości dla automatycznego wzrostu.
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 秒)
Uzyskaj wartość AUTO_INCREMENT
W kliencie MySQL możesz użyć funkcji LAST_INSERT_ID() w SQL, aby uzyskać wartość ostatniej kolumny z autoinkrementacją wstawionej do tabeli.
Odpowiednie funkcje są również dostępne w skrypcie PHP lub PERL, aby uzyskać wartość ostatniej kolumny auto-inkrementacji wstawionej do tabeli.
Instancja PERL
Użyj właściwości mysql_insertid, aby uzyskać wartość AUTO_INCREMENT.Przykłady są następujące:
$ dbh - > do (“INSERT INTO insect(name,date,origin) VALUES('moth','2001-09-14','windowsill')“ ); my $ seq = $ dbh - > { mysql_insertid };
Przykład PHP
PHP uzyskuje wartość kolumny AUTO_INCREMENT w wykonanej instrukcji insert SQL poprzez funkcję mysql_insert_id().
mysql_query (“INSERT INTO昆虫(名字,日期,起源) VALUES('moth','2001-09-14','windowsill')“ ,$ conn_id ); $ seq = mysql_insert_id ($ conn_id );
zresetuj sekwencję
Jeśli usuniesz wiele rekordów w tabeli danych i chcesz zmienić kolejność kolumny AUTO_INCREMENT pozostałych danych, możesz to zrobić, usuwając kolumnę autoinkrementacji, a następnie dodając ją ponownie.Jednak ta operacja musi być bardzo ostrożna, jeśli jest.Jednocześnie z usuwaniem dodawane są nowe rekordy i może dojść do zamieszania w danych.Operacje są następujące:
mysql > ALTER TABLE昆虫DROP ID ; mysql > ALTER TABLE昆虫 - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,- > ADD PRIMARY KEY (id );
Ustaw wartość początkową sekwencji
Ogólnie rzecz biorąc, początkowa wartość ciągu wynosi 1, ale jeśli musisz określić początkową wartość 100, możemy to zrobić za pomocą następującego oświadczenia:
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 ;
Możesz też użyć następującej instrukcji po pomyślnym utworzeniu tabeli:
mysql > ALTER TABLE t AUTO_INCREMENT = 100 ;
Nadzieja Chen Weiliang Blog ( https://www.chenweiliang.com/ ) udostępniony „Jak MySQL tworzy sekwencję? Baza danych MySQL do tworzenia samoinkrementujących instrukcji sekwencji”, aby Ci pomóc.
Zapraszamy do udostępnienia linku do tego artykułu:https://www.chenweiliang.com/cwl-498.html
Aby odblokować więcej ukrytych sztuczek🔑, zapraszamy do dołączenia do naszego kanału Telegram!
Udostępnij i polub jeśli Ci się podoba! Twoje udostępnienia i polubienia są naszą ciągłą motywacją!