MySQL / 11. Формирование и использование последовательностей

Последовательность (sequence) – это множество целых чисел (1, 2, 3, ...), генерируемых в требуемом порядке по запросу. Последовательности часто используются в базах данных, так как многие приложения требуют, чтобы каждая строка таблицы содержала уникальное значение, а это удобно делать при помощи последовательности. В этой главе рассказано о том, как работать с последовательностями в MySQL.
Статьи раздела '11. Формирование и использование последовательностей':
Генераторы однострочных последовательностей
Задача Вас интересует только подсчет количества событий, так что нет смысла создавать запись для каждого отсчета. Решение Примените другой механизм формирования последовательности, который использует всего одну строку. Обс...
Генерирование значений последовательности
Задача Теперь, когда у вас есть столбец AUTO_INCREMENT, хотелось бы использовать его для формирования нового значения последовательности. Решение Вставьте в столбец NULL или просто пропустите в предложении INSERT. И в том и в...
Добавление последовательности в существующую таблицу
Задача Вы забыли включить столбец AUTO_INCREMENT в таблицу при создании. Теперь уже поздно? Решение Нет, просто добавьте его с помощью предложения ALTER TABLE. MySQL автоматически создаст столбец и пронумерует строки. Обсу...
Извлечение значений последовательности
Задача После создания записи, включающей новый номер последовательности, вы хотите узнать, что это был за номер. Решение В предложении SQL можно использовать функцию LAST_INSERT_ID(). Если вы пишете программу, то ваш API для ...
Использование значений AUTO_INCREMENT для связывания таблиц
Задача Вы используете значения последовательности одной таблицы как ключи для второй таблицы, чтобы соответствующим образом связать записи двух таблиц. Но что-то не получается. Решение Вероятно, вы вставляете записи не в том ...
Как начать последовательность с определенного значения
Задача Последовательности начинаются с 1, но вам хотелось бы использовать другое начальное значение. Решение Добавьте инструкцию AUTO_INCREMENT в предложение CREATE TABLE при создании таблицы. Если таблица уже создана, выполн...
Перенумерация существующей последовательности
Задача Несмотря на мои рекомендации вы все-таки решили повторно упорядочить столбец последовательности. Решение Удалите столбец из таблицы. Затем вставьте снова. MySQL сделает последовательность номеров непрерывной. Обсужд...
Повторное использование последних значений последовательности
Задача Вы удалили строки с максимальными номерами последовательности. Можно ли избежать повторного упорядочивания столбца, но при этом заново использовать удаленные значения? Решение Да, используйте предложение ALTER TABLE дл...
Последовательная нумерация строк вывода запроса
Задача Вы хотите пронумеровать выводимые запросом строки. Решение Если вы пишете собственную программу, то просто добавьте номера строк самостоятельно. Обсуждение Последовательность, никак не связанная с содержимым вашей ...
Расширение диапазона последовательности
Задача Вы не хотите повторно упорядочивать столбец, но вам не хватает номеров последовательности для новых строк. Решение Посмотрите, можно ли изменить тип столбца на UNSIGNED или на более широкий целый тип. Обсуждение По...

Страницы: 1 2