Последовательности

Последовательность (sequence) – это объект базы данных, используемый для автоматической генерации последовательности целых чисел. Чаще всего полученные целые числа, составляющие последовательность, используют при добавлении новых строк таблиц и присвоения значений идентификаторам, являющихся первичными ключами.

Если базой данных одновременно пользуются множество пользователей, то следить за тем, какие значения уже были использованы для нумерации объектов, а какие еще нет, достаточно сложно. Частично эту проблему можно решить, выполняя запрос к базе данных, возвращающий максимальное значение существующих идентификаторов. Но при таком подходе могут возникнуть серьезные проблемы с обеспечением целостности базы данных, если предположить, что одновременно к базе данных могут получить доступ более одного пользователя, имеющих возможность добавлять объекты в одни и те же таблицы. Например, есть два пользователя, которые хотят добавить по одному объекту в какую-либо таблицу. Между выполнением запроса на определение значения максимального существующего идентификатора и запросом на добавление объекта может пройти какое-то время. Существует вероятность, что оба пользователя получат одинаковые результаты при выполнении первого запроса, поэтому второй запрос будет выполнен успешно только у одного из пользователей.

Описанной выше проблемы при использовании последовательностей не возникнет, поскольку каждый элемент последовательности доступен только одному пользователю.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: