30.9. columns

La vue columns contient des informations sur toutes les colonnes de table (et colonnes de vue) de la base de donn�es. Les colonnes syst�me (oid, etc.) ne sont pas inclus. Seules les colonnes, auxquelles l'utilisateur a acc�s, sont affich�es (qu'il soit le propri�taire ou qu'il ait quelques droits).

Tableau 30-7. Colonnes de columns

NomType de donn�esDescription
table_catalogsql_identifierNom de la base de donn�es contenant la table (toujours la base de donn�es courante)
table_schemasql_identifierNom du sch�ma contenant la table
table_namesql_identifierNom de la table
column_namesql_identifierNom de la colonne
ordinal_positioncardinal_numberPosition de la colonne dans la table (la num�rotation commen�ant � 1)
column_defaultcharacter_data Expression par d�faut de la colonne (NULL si l'utilisateur courant n'est pas le propri�taire de la table contenant la colonne)
is_nullablecharacter_data YES si la colonne peut contenir des valeurs NULL, NO dans le cas contraire. Une contrainte not NULL est une fa�on pour obtenir qu'une colonne soit connue comme ne pouvant pas contenir de valeurs NULL mais il en existe d'autres.
data_typecharacter_data Le type de donn�es de la colonne, s'il s'agit d'un type interne ou d'un tableau (ARRAY) (dans ce cas, voir la vue element_types) sinon d�fini par l'utilisateur (USER-DEFINED) (dans ce cas, le type est identifi� dans udt_name et dispose des colonnes associ�s). Si la colonne est bas�e sur un domaine, cette colonne est une r�f�rence au type sous-jacent du domaine (et le domaine est identifi� dans domain_name et dispose des colonnes associ�es).
character_maximum_lengthcardinal_number Si data_type identifie un caract�re ou un type de cha�ne de bits, la longueur maximum d�clar�e ; NULL pour tous les autres types de donn�es ou si aucune longueur maximum n'a �t� d�clar�e.
character_octet_lengthcardinal_number Si data_type identifie un type caract�re, la longueur maximum en octets (bytes) d'un datum (ceci ne devrait pas concerner les utilisateurs PostgreSQL) ; NULL pour les autres types de donn�es.
numeric_precisioncardinal_number Si data_type identifie un type num�rique, cette colonne contient la pr�cision (d�clar�e ou implicite) du type pour cette colonne. Cette pr�cision indique le nombre de chiffres significatifs. Elle pourrait �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, la colonne est NULL.
numeric_precision_radixcardinal_number Si data_type identifie un type num�rique, cette colonne indique dans quel base les valeurs des colonnes numeric_precision et numeric_scale sont exprim�es. La valeur est soit 2 soit 10. Pour tous les autres types de donn�es, cette colonne est NULL.
numeric_scalecardinal_number Si data_type identifie un type numeric exactement, cette colonne contient l'�chelle (d�clar�e ou implicite) du type de cette colonne. L'�chelle indique le nombre de chiffres significatifs � la droite du point d�cimal. Elle pourrait �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_precisioncardinal_number Si data_type identifie une date, une heure ou un type interval, la pr�cision d�clar�e ; NULL pour tous les autres types de donn�es ou si aucune pr�cision n'a �t� d�clar�e.
interval_typecharacter_dataPas encore impl�ment�
interval_precisioncharacter_dataPas encore impl�ment�
character_set_catalogsql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL
character_set_schemasql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
character_set_namesql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
collation_catalogsql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
collation_schemasql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
collation_namesql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
domain_catalogsql_identifier Si la colonne a un type domain, le nom de la base de donn�es o� le type est d�fini (toujours la base de donn�es courante), sinon NULL.
domain_schemasql_identifier Si la colonne a un type domain, le nom du sch�ma o� le domaine est d�fini, sinon NULL.
domain_namesql_identifierSi la colonne a un type de domaine, le nom du domaine, sinon NULL.
udt_catalogsql_identifier Nom de la base de donn�es o� le type de donn�es de la colonne (le type sous-jacent du domaine, si applicable) est d�fini (toujours la base de donn�es courante)
udt_schemasql_identifier Nom du sch�ma o� le type de donn�es de la colonne (le type sous-jacent du domaine, si applicable) est d�fini
udt_namesql_identifier Nom du type de donn�es de la colonne (le type sous-jacent du domaine, si applicable)
scope_catalogsql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
scope_schemasql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
scope_namesql_identifierS'applique � une fonctionnalit� non disponible dans PostgreSQL.
maximum_cardinalitycardinal_numberToujours NULL car les tableaux ont toujours une cardinalit� maximum illimit�e avec PostgreSQL
dtd_identifiersql_identifier Un identifiant du descripteur du type de donn�es de la colonne, unique parmi les descripteurs de type de donn�es contenu dans la table. Ceci est principalement utile pour joindre d'autres instances de ces identifiants (le format sp�cifique de l'identifiant n'est ni d�fini ni assur� de rester identique dans les versions futures).
is_self_referencingcharacter_dataS'applique � une fonctionnalit� non disponible dans PostgreSQL.

Comme les types de donn�es peuvent �tre d�finis avec une grande vari�t� de moyens en SQL et comme PostgreSQL contient des moyens suppl�mentaires pour d�finir des types de donn�es, leurs repr�sentations dans le sch�ma d'information peut �tre assez complexe. La colonne data_type est suppos�e identifier le type de donn�es interne sous-jacent de la colonne. Dans PostgreSQL, cela signifie que le type est d�fini dans le sch�ma du catalogue syst�me pg_catalog. Cette colonne pourrait �tre utile si l'application peut correctement g�rer les types internes (par exemple, formater les types num�riques diff�remment ou utiliser les donn�es dans les colonnes de pr�cisions). Les colonnes udt_name, udt_schema et udt_catalog identifient toujours le type de donn�es sous-jacent de la colonne m�me si la colonne est bas�e sur un domaine (comme PostgreSQL traite les types internes comme des types d�finis par l'utilisateur, les types internes apparaissent aussi ici. Ceci est une extension du standard SQL). Ces colonnes devraient �tre utilis�es si une application souhaite traiter les donn�es diff�remment suivant le type car, dans ce cas, peu importe si la colonne est r�ellement bas�e sur un domaine. Si la colonne est bas�e sur un domaine, l'identit� du domaine est stock�e dans les colonnes domain_name, domain_schema et domain_catalog. Si vous souhaitez assembler les colonnes avec leur types de donn�es associ�s et traiter les domaines comme des types s�par�s, vous pouvez �crire coalesce(domain_name, udt_name), etc.