Следующее значение для последовательности sequence_name
MariaDB начиная с 10.3
Последовательности (SEQUENCE) были введены в MariaDB 10.3
Синтаксис
NEXT VALUE FOR sequence
или
NEXTVAL(sequence_name)
или в режиме Oracle (SQL_MODE=ORACLE)
sequence_name.nextval
NEXT VALUE FOR — это синтаксис ANSI SQL, а NEXTVAL() — синтаксис PostgreSQL.
Описание
Генерирует следующее значение для SEQUENCE.
- Вы можете значительно ускорить
NEXT VALUEсоздав последовательность с опциейCACHE. В противном случае каждое использованиеNEXT VALUEвызовет изменения в хранимой таблицеSEQUENCE. - При использовании
NEXT VALUEзначение будет зарезервировано сразу и не будет повторно использовано, за исключением случаев, когда последовательностьSEQUENCEбыла создана сCYCLE. Это означает, что при использованииSEQUENCEвы должны ожидать пробелы в сгенерированных номерах последовательности. - Если вы обновите
SEQUENCEс помощью SETVAL() или ALTER SEQUENCE ... RESTART,NEXT VALUE FORзаметит это и начнет со следующего запрошенного значения. -
FLUSH TABLES закроет последовательность, и следующее сгенерированное число последовательности будет соответствовать сохранённому значению в объекте
SEQUENCE. По сути, это отбросит кэшированные значения. - Перезагрузка сервера (или закрытие текущего подключения) также приводит к удалению всех кэшированных значений. Кэшированные номера последовательности зарезервированы только для текущего подключения.
-
Для использования
NEXT VALUEтребуетсяINSERTправо доступа.
MariaDB начиная с 10.3.3
- Также можно использовать
NEXT VALUE FOR sequenceдля столбцаDEFAULT.
См. также
- Обзор последовательностей
- CREATE SEQUENCE
- ALTER SEQUENCE
- ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ ДЛЯ
- SETVAL(). Установить следующее значение для последовательности.
- AUTO_INCREMENT
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают точку зрения MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/next-value-for-sequence_name/