## Syntax ```mermaid %%{init: { 'theme': 'base', 'flowchart': { 'padding': '7', 'nodeSpacing': '20', 'rankSpacing': '20' }, 'themeVariables': { 'fontSize': '11px', 'fontFamily': 'Arial' } }}%% flowchart LR Start((START)) --> UUID_GENERATE_V3[UUID_GENERATE_V3]:::quoted UUID_GENERATE_V3 --> End((END)) ``` ## Purpose The `UUID_GENERATE_V3` SQL function creates the name-based UUID of version 3 (RFC 9562) of a name in a namespace, using MD5. A name-based UUID is always the same for the same namespace and name, so it can serve as a stable ID derived from a natural key. The hash only spreads the names; it protects nothing, so do not use it to hide the name. Prefer [[UUID_GENERATE_V5]] for a new design; version 3 exists for compatibility with systems which already use it. The function has the name and the arguments of the function of the `uuid-ossp` extension of PostgreSQL. Available from release 28.0. See also [[UUID_GENERATE_V5]], [[UUID_NS_DNS]], [[UUID_NS_URL]], [[UUID_NS_OID]] and [[UUID_NS_X500]]. Parameters: - Namespace (`guid`): the namespace, such as `uuid_ns_dns()`, or the text of a UUID. - Name (`varchar2`): the name, taken as UTF-8. The result is `null` when the namespace or the name is `null`. Text which is no UUID as the namespace raises `itgenduy005`. Returns: the UUID, of data type `guid`. ## Examples The following example creates the UUID of the name `python.org` in the namespace of domain names: ```sql select uuid_generate_v3(uuid_ns_dns(), 'python.org') ------------------------------------ 6fa459ea-ee8a-3ca4-894e-db77e160355e ```