В конце сентября 2025 года вышла СУБД PostgreSQL 18. Она получила долгожданную встроенную функцию uuidv7(). Функция uuidv7() генерирует согласно международному стандарту RFC 9562 идентификаторы типа UUID версии 7 (UUIDv7) с бинарным типом данных uuid, рекомендованные и используемые в качестве первичных ключей. При необходимости таймстемп с часовым поясом может быть извлечен из них с помощью функции uuid_extract_timestamp().
UUIDv7 сочетает в себе глобальную уникальность первичных ключей, пренебрежимо малую вероятность коллизий (недопустимых случайных совпадений) и упорядоченность по моменту времени генерации. При этом не используются централизованная координация вычислений и MAC-адреса. Риск коллизий не выше, чем у прежде самого популярного (случайного) типа UUID версии 4.
Благодаря упорядоченности по моменту времени генерации UUIDv7 обеспечивают гораздо большую производительность и меньшее потребление дискового пространства для индексов по сравнению с UUIDv4. Старшие биты идентификаторов UUIDv7 могут использоваться в качестве ключа секционирования (partition key).
UUIDv7 обеспечивают такую же производительность CRUD-операций БД, как при использовании автоинкремента (типа serial и его современного аналога GENERATED ... AS IDENTITY). Время генерации идентификатора UUIDv7 приблизительно в тысячу раз меньше времени вставки записи, поэтому темп генерации UUIDv7 не влияет на производительность БД.
Использование UUIDv7 позволяет избавиться от фундаментальных недостатков автоинкремента: