Каталог статей
MySQLКак создать последовательность?База данных MySQLСоздайте оператор автоинкрементной последовательности
Использование последовательности MySQL
Последовательность MySQL представляет собой набор целых чисел: 1, 2, 3, ..., поскольку таблица данных может иметь только один первичный ключ автоинкремента поля, если вы хотите добиться автоматического увеличения других полей, вы можете использовать последовательность MySQL для достигать.
В этой главе мы опишем, как использовать последовательности MySQL.
Используйте AUTO_INCREMENT
Самый простой способ использовать последовательности в MySQL — использовать MySQL AUTO_INCREMENT для определения столбцов.
Пример
Таблица данных Insect создается в следующем примере, где не указано значение для автоматического роста.
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 秒)
Получить значение AUTO_INCREMENT
В клиенте MySQL вы можете использовать функцию LAST_INSERT_ID() в SQL, чтобы получить значение последнего автоматически увеличивающегося столбца, вставленного в таблицу.
Соответствующие функции также предусмотрены в сценарии PHP или PERL для получения значения последнего столбца автоинкремента, вставленного в таблицу.
экземпляр PERL
Используйте свойство mysql_insertid, чтобы получить значение AUTO_INCREMENT.Примеры следующие:
$ dbh - > do (“INSERT INTO insect(name,date,origin) VALUES('moth','2001-09-14','windowsill')“ ); my $ seq = $ dbh - > { mysql_insertid };
PHP-пример
PHP получает значение столбца AUTO_INCREMENT в выполненном операторе SQL вставки через функцию mysql_insert_id().
mysql_query (“INSERT INTO昆虫(名字,日期,起源) VALUES('moth','2001-09-14','windowsill')“ ,$ conn_id ); $ seq = mysql_insert_id ($ conn_id );
последовательность сброса
Если вы удаляете несколько записей в таблице данных и хотите переупорядочить столбец AUTO_INCREMENT оставшихся данных, вы можете сделать это, удалив столбец с автоинкрементом, а затем добавив его снова.Однако эта операция должна быть очень осторожной, если она есть.В то же время удаления добавляются новые записи, и может быть путаница данных.Операции следующие:
mysql > ALTER TABLE昆虫DROP ID ; mysql > ALTER TABLE昆虫 - > ADD ID INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST ,- > ADD PRIMARY KEY (id );
Установите начальное значение последовательности
В общем случае начальное значение последовательности равно 1, но если вам нужно указать начальное значение 100, то мы можем сделать это с помощью следующего оператора:
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 ;
Или вы также можете использовать следующий оператор после успешного создания таблицы:
mysql > ALTER TABLE t AUTO_INCREMENT = 100 ;
Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ ) поделился «Как MySQL создает последовательность? База данных MySQL для создания оператора самоувеличивающейся последовательности», чтобы помочь вам.
Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-498.html
Добро пожаловать на Telegram-канал блога Chen Weiliang, чтобы быть в курсе последних обновлений!
📚 Это руководство содержит огромную ценность. 🌟Это редкая возможность, не упустите ее! ⏰⌛💨
Делитесь и ставьте лайк, если хотите!
Ваш обмен и лайки - наша постоянная мотивация!