September 26, 2024: PostgreSQL 17 Released!
Supported Versions: Current (17) / 16 / 15 / 14 / 13
Development Versions: devel

9.14. UUID Functions #

PostgreSQL includes one function to generate a UUID:

gen_random_uuid () → uuid

This function returns a version 4 (random) UUID. This is the most commonly used type of UUID and is appropriate for most applications.

The uuid-ossp module provides additional functions that implement other standard algorithms for generating UUIDs.

There are also functions to extract data from UUIDs:

uuid_extract_timestamp (uuid) → timestamp with time zone

This function extracts a timestamp with time zone from UUID version 1. For other versions, this function returns null. Note that the extracted timestamp is not necessarily exactly equal to the time the UUID was generated; this depends on the implementation that generated the UUID.

uuid_extract_version (uuid) → smallint

This function extracts the version from a UUID of the variant described by RFC 4122. For other variants, this function returns null. For example, for a UUID generated by gen_random_uuid, this function will return 4.

PostgreSQL also provides the usual comparison operators shown in Table 9.1 for UUIDs.

Submit correction

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.