Documentation PostgreSQL 14.22 » Interfaces client » Schéma d'information » `domains`

Précédent | Niveau supérieur | Suivant
37.22. `domain_udt_usage` | Sommaire | 37.24. `element_types`

## 37.23. `domains`

La vue `domains` contient tous les domaines définis dans la base de données courante. Seuls sont affichés les domaines auxquels l'utilisateur a accès (soit parce qu'il en est le propriétaire, soit parce qu'il possède certains droits dessus).

Tableau 37.21. Colonnes de `domains`

Type de la colonne Description
`domain_catalog` `sql_identifier` Nom de la base de données contenant le domaine (toujours la base de données courante)
`domain_schema` `sql_identifier` Nom du schéma contenant le domaine
`domain_name` `sql_identifier` Nom du domaine
`data_type` `character_data` Type de données du domaine s'il s'agit d'un type interne, ou `ARRAY` s'il s'agit d'un tableau (dans ce cas, voir la vue `element_types`), sinon `USER-DEFINED` (dans ce cas, le type est identifié dans `udt_name` et comprend des colonnes associées).
`character_maximum_length` `cardinal_number` Si le domaine a un type caractère ou chaîne de bits, la longueur maximale déclarée ; NULL pour tous les autres types de données ou si aucune longueur maximale n'a été déclarée.
`character_octet_length` `cardinal_number` Si le domaine a un type caractère, la longueur maximale en octets (bytes) d'un datum ; NULL pour tous les autres types de données. La longueur maximale en octets dépend de la longueur maximum déclarée en caractères (voir ci-dessus) et l'encodage du serveur.
`character_set_catalog` `sql_identifier` S'applique à une fonctionnalité non disponible dans PostgreSQL.
`character_set_schema` `sql_identifier` S'applique à une fonctionnalité non disponible dans PostgreSQL.
`character_set_name` `sql_identifier` S'applique à une fonctionnalité non disponible dans PostgreSQL.
`collation_catalog` `sql_identifier` Nom de la base contenant le collationnement du domaine (toujours la base de données courante), NULL s'il s'agit du collationnement par défaut ou si le type de données de l'attribut ne peut pas avoir de collationnement
`collation_schema` `sql_identifier` Nom du schéma contenant le collationnement du domaine, NULL s'il s'agit du collationnement par défaut ou si le type de données du domaine ne peut pas avoir de collationnement
`collation_name` `sql_identifier` Nom du collationnement de la domaine, NULL s'il s'agit du collationnement par défaut ou si le type de données du domaine ne peut pas avoir de collationnement
`numeric_precision` `cardinal_number` Si le domaine a un type numérique, cette colonne contient la précision (déclarée ou implicite) du type de cette colonne. Cette précision indique le nombre de chiffres significatifs. Elle peut être exprimée en décimal (base 10) ou en binaire (base 2), comme indiqué dans la colonne `numeric_precision_radix`. Pour les autres types de données, cette colonne est NULL.
`numeric_precision_radix` `cardinal_number` Si le domaine a un type numérique, cette colonne indique la base des valeurs des colonnes `numeric_precision` et `numeric_scale`. La valeur est soit 2 soit 10. Pour tous les autres types de données, cette colonne est NULL.
`numeric_scale` `cardinal_number` Si le domaine contient un type numeric, cette colonne contient l'échelle (déclarée ou implicite) du type pour cette colonne. L'échelle indique le nombre de chiffres significatifs à droite du point décimal. Elle peut être exprimée en décimal (base 10) ou en binaire (base 2), comme indiqué dans la colonne `numeric_precision_radix`. Pour tous les autres types de données, cette colonne est NULL.
`datetime_precision` `cardinal_number` Si le domaine contient un type date, heure ou intervalle, la précision déclarée ; NULL pour les autres types de données ou si la précision n'a pas été déclarée.
`interval_type` `character_data` Si `data_type` identifie un type d'intervalle, cette colonne contient la spécification des champs que les intervalles incluent pour ce domaine, par exemple `YEAR TO MONTH`, `DAY TO SECOND`, etc. Si aucune restriction de champs n'est spécifiée (autrement dit, l'intervalle accepte tous les champs) et pour tous les autres types de données, ce champ est NULL.
`interval_precision` `cardinal_number` S'applique à une fonctionnalité non disponible dans PostgreSQL (voir `datetime_precision` pour la précision en fraction des secondes des domaines de type d'intervalle)
`domain_default` `character_data` Expression par défaut du domaine
`udt_catalog` `sql_identifier` Nom de la base de données dans laquelle est défini le type de données domaine (toujours la base de données courante)
`udt_schema` `sql_identifier` Nom du schéma où le type de données domaine est défini
`udt_name` `sql_identifier` Nom du type de données domaine
`scope_catalog` `sql_identifier` S'applique à une fonctionnalité non disponible dans PostgreSQL.
`scope_schema` `sql_identifier` S'applique à une fonctionnalité non disponible dans PostgreSQL.
`scope_name` `sql_identifier` S'applique à une fonctionnalité non disponible dans PostgreSQL.
`maximum_cardinality` `cardinal_number` Toujours NULL car les tableaux n'ont pas de limite maximale de cardinalité dans PostgreSQL
`dtd_identifier` `sql_identifier` Un identifiant du descripteur de type de données du domaine, unique parmi les descripteurs de type de données restant dans le domaine (ce qui est trivial car un domaine contient seulement un descripteur de type de données). Ceci est principalement utile pour joindre d'autres instances de tels identifiants (le format spécifique de l'identifiant n'est pas défini et il n'est pas garanti qu'il restera identique dans les versions futures).