## 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
```