UUID (Universally Unique Identifier) stores a 128-bit value that is unique across both space and time.
Syntax
You can expressUUID values using the following formats:
| Format | Description |
|---|---|
| Standard RFC4122 format | Hyphen-separated groups of 8, 4, 4, 4, and 12 hexadecimal digits. Example: acde070d-8c4c-4f0d-9d8a-162843c10333 |
BYTES | UUID value specified as a value.Example: b'kafef00ddeadbeed' |
| Uniform Resource Name | A Uniform Resource Name (URN) specified as “urn:uuid:” followed by the RFC4122 format. Example: urn:uuid:63616665-6630-3064-6465-616462656564 |
| Alternate PostgreSQL-supported formats | All alternate UUID formats supported by PostgreSQL, including the RFC4122 format surrounded by braces, any supported format with upper-case digits, any supported format with some or all hyphens omitted, and any supported format with hyphens after any group of four digits.Examples: , ACDE070D-8C4C-4f0D-9d8A-162843c10333, acde070d8c4c4f0d9d8a162843c10333, acde-070d-8c4c-4f0d-9d8a-1628-43c1-0333 |
UUID values in the standard RFC4122 format.
Size
AUUID value is 128 bits in width, but the total storage size is likely to be larger due to CockroachDB metadata.
Examples
Create a table with manually-entered UUID values
Create a table with UUID in standard RFC4122-specified format
Create a table with UUID in BYTE format
Create a table with UUID used as URN
Express UUIDs in alternate formats
Create a table with auto-generated unique row IDs
To auto-generate unique row identifiers, you can use thegen_random_uuid(), uuid_v4(), or unique_rowid() .
To use the column with the gen_random_uuid() as the :
uuid_v4() function as the default value:
unique_rowid() as the default value, either explicitly or via the :
unique_rowid() function generates a default value from the timestamp and ID of the node executing the insert. Such time-ordered values are likely to be globally unique except in cases where a very large number of IDs (100,000+) are generated per node per second. Also, there can be gaps and the order is not completely guaranteed.
To understand the differences between the UUID and unique_rowid() options, see the . For further background on UUIDs, see What is a UUID, and Why Should You Care?.
Supported casting and conversion
UUID values can be to the following data type:
| Type | Details |
|---|---|
BYTES | Requires supported string format, e.g., b'\141\061\142\062\143\063'. |

