В MariaDB начиная с версии 10.3 существует возможность изначально использовать создание последовательностей;В следующем примере вы можете увидеть, как это достигается
Сначала давайте создадим последовательность таблиц
CREATE SEQUENCE id
START WITH 1
INCREASE BY 1;
Если, например, мы хотим увидеть структуру идентификатора таблицы, то зановосоздано;просто выполните следующее в консоли
MariaDB [blog]> describe id;
+-----------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+---------------------+------+-----+---------+-------+
| next_not_cached_value | bigint(21) | NO | | NULL | |
| minimum_value | bigint(21) | NO | | NULL | |
| maximum_value | bigint(21) | NO | | NULL | |
| start_value | bigint(21) | NO | | NULL | |
| increment | bigint(21) | NO | | NULL | |
| cache_size | bigint(21) unsigned | NO | | NULL | |
| cycle_option | tinyint(1) unsigned | NO | | NULL | |
| cycle_count | bigint(21) | NO | | NULL | |
+-----------------------+---------------------+------+-----+---------+-------+
Из приведенной выше таблицы вы можете заметить важные детали, такие как тот факт, что числовое значение по умолчанию имеет тип BIGINT
Так что, как мысказал, что он будет начинаться с нумерации в 1 и еще один будет увеличиваться, это позволяет нам генерировать прогрессивное число, которое может быть связано, как первичное с таблицей
Давайте создадим новыйтаблица примеров в менеджере mariaDB
MariaDB [blog]> CREATE TABLE demo (
-> id BIGINT NOT NULL,
-> name VARCHAR (30),
-> PRIMARY KEY (id));
Наконец, при объявлении первичного ключа типа автоинкремента нет необходимости объявлять его в предложении вставки, когда мы используем последовательность, если необходимо записатьназвание колонки;как следующий пример
MariaDB [blog]> INSERT INTO demo (id, name)
-> VALUES
-> (NEXT VALUE FOR id, 'alpha');
Как можно наблюдать предыдущую последовательность, чтобы вставить динамическое значение, сгенерированное последовательностью, мы вызываем имя последовательности через СЛЕДУЮЩЕЕ ЗНАЧЕНИЕ для имени и в конце имениидентификатор последовательности
Наконец, вы можете получить результат нашего предыдущего предложения, мы регулярно выполняем SELECT для таблицы и получаем следующие
MariaDB [blog]> SELECT * FROM demo;
+ ---- + ------ +
| id | name |
+ ---- + ------ +
| 1 | alpha |
+ ---- + ------ +
Дополнительные конфигурации:
При желании вы можете настроить следующие параметры для последовательности в менеджере mariaDB:
minvalue
= Вы можете установить его 1maxvalue
= В зависимости от типа данных, который вы выбираете, если это INT или BIGINT
, вы должны поставить флажок, чтобы ограничить эти типы данных Cycle
= По умолчаниюон имеет опцию без цикла, в противном случае, как только начинается минимальное значение и достигается максимальный предел, счетчик перезапускается и нумерация начинается снова (при условии, что возможен предел типа данных)