SQL Language Guide > SQL Language Guide > Data Types > Data Types > Universal Unique Identifier (UUID)
Was this helpful?
Universal Unique Identifier (UUID)
A Universal Unique Identifier (UUID) is a 128 bit, unique identifier generated by the local system upon request or loaded from external sources.
The database can generate UUID values with the UUID() function. Existing UUID values can be loaded from external sources; the data type is coerced, if necessary. The system cannot guarantee uniqueness of these external values, but when used correctly, the algorithms used to create the values will guarantee it.
The identifier is unique across both space and time with respect to the space of all UUIDs. UUID values generated are Version 1 (time-based) UUIDs.
A UUID can be used to tag records to ensure that the database records are uniquely identified regardless of which database they are stored in, for example, in a system where there are two separate physical databases containing accounting data from two different physical locations.
No centralized authority is responsible for assigning UUIDs. They can be generated on demand (10 million per second per machine if needed).
A UUID can be used for multiple purposes:
Tagging objects that have a brief life
Reliably identifying persistent objects across a network
Assigning as unique values to transactions as transaction IDs in a distributed system
UUIDs are fixed sized (128 bits), which is small relative to other alternatives. This fixed small size lends itself well to sorting, ordering, and hashing of all sorts, sorting in databases, simple allocation, and ease of programming.
UUID Format
The format of 128-bits (16 octets) UUID is:
Field
Data Type
Octet Number
Note
time_low
unsigned 32-bit integer
0-3
The low field of the timestamp
time_mid
unsigned 16-bit integer
4-5
Time middle field of the timestamp
time_hi_and_version
unsigned 16-bit integer
6-7
The high field of the timestamp multiplex with the release number
clock seq_hi_and_reserved
unsigned 8-bit integer
8
The high field of the clock sequence multiplex with the variant
clock_seq_low
unsigned 8-bit integer
9
The low field of the clock sequence
node
unsigned 48-bit integer
10-15
The spatially unique node identifier
Last modified date: 03/21/2024