34.16. columns

Представление columns содержит информацию обо всех столбцах таблиц (или столбцах представлений) в базе данных. Системные столбцы (oid и т. д.) в нём не отображаются. В нём показываются только те столбцы, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторые права).

Таблица 34.14. Столбцы columns

ИмяТип данныхОписание
table_catalogsql_identifierИмя базы данных, содержащей таблицу (всегда текущая база)
table_schemasql_identifierИмя схемы, содержащей таблицу
table_namesql_identifierИмя таблицы
column_namesql_identifierИмя столбца
ordinal_positioncardinal_numberПорядковый номер столбца в таблице (нумерация начинается с 1)
column_defaultcharacter_dataВыражение по умолчанию для столбца
is_nullableyes_or_noYES, если столбец может содержать NULL, или NO, если он не принимает NULL. Не будет принимать NULL столбец с ограничением NOT NULL, но возможны и другие варианты.
data_typecharacter_dataТип данных столбца, если это встроенный тип, либо ARRAY, если это массив (в этом случае обратитесь к представлению element_types), иначе — USER-DEFINED (в этом случае тип определяется в udt_name и связанных столбцах). Если столбец основан на домене, данный столбец показывает нижележащий тип домена (а сам домен показывается в domain_name и связанных столбцах).
character_maximum_lengthcardinal_numberЕсли в data_type указан тип текстовой или битовой строки, это поле задаёт её объявленную максимальную длину; NULL для всех других типов данных, либо если максимальная длина не объявлена.
character_octet_lengthcardinal_numberЕсли в data_type указан тип символьной строки, это поле задаёт её максимально возможный размер в октетах (байтах); NULL для всех других типов данных. Максимальный размер в октетах зависит от объявленной максимальной длины в символах (см. выше) и от кодировки сервера.
numeric_precisioncardinal_numberЕсли в data_type указан числовой тип, этот столбец содержит точность (объявленную или неявную) типа для целевого столбца. Точность определяет число значащих цифр. Она может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцу numeric_precision_radix. Для всех других типов данных этот столбец содержит NULL.
numeric_precision_radixcardinal_numberЕсли в data_type указан числовой тип, в этом столбце определяется, по какому основанию задаются значения в столбцах numeric_precision и numeric_scale. Возможные варианты: 2 или 10. Для всех других типов данных этот столбец содержит NULL.
numeric_scalecardinal_numberЕсли в data_type указан точный числовой тип, этот столбец содержит масштаб (объявленный или неявный) типа для целевого столбца. Масштаб определяет число значащих цифр справа от десятичной точки. Он может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно столбцу numeric_precision_radix. Для всех других типов данных этот столбец содержит NULL.
datetime_precisioncardinal_numberЕсли в data_type указан тип даты, времени, отметки времени или интервала, этот столбец содержит точность (объявленную или неявную) в долях секунды типа для целевого столбца, то есть число десятичных цифр, сохраняемых после десятичной точки в значении секунд. Для всех других типов данных этот столбец содержит NULL.
interval_typecharacter_dataЕсли в data_type указан тип интервала, этот столбец определяет, какие поля принимает интервал в целевом столбце, например: YEAR TO MONTH, DAY TO SECOND и т. д. Если ограничения для полей не заданы (то есть, интервал принимает все поля), и для любых других типов данных это поле содержит NULL.
interval_precisioncardinal_numberОтносится к функциональности, отсутствующей в PostgreSQL (см. поле datetime_precision, определяющее точность в долях секунды для типов интервалов)
character_set_catalogsql_identifierОтносится к функциональности, отсутствующей в PostgreSQL
character_set_schemasql_identifierОтносится к функциональности, отсутствующей в PostgreSQL
character_set_namesql_identifierОтносится к функциональности, отсутствующей в PostgreSQL
collation_catalogsql_identifierИмя базы данных, содержащей правило сортировки столбца (это всегда текущая база), либо NULL, если это правило по умолчанию или тип данных столбца несортируемый
collation_schemasql_identifierИмя схемы, содержащей правило сортировки столбца, либо NULL, если это правило по умолчанию или тип данных столбца несортируемый
collation_namesql_identifierИмя правила сортировки столбца, либо NULL, если это правило по умолчанию или тип данных столбца несортируемый
domain_catalogsql_identifierЕсли целевой столбец имеет тип домена, этот столбец содержит имя базы данных, в которой определён домен (всегда текущая база), иначе — NULL.
domain_schemasql_identifierЕсли целевой столбец имеет тип домена, этот столбец содержит имя схемы, в которой определён домен, иначе — NULL.
domain_namesql_identifierЕсли целевой столбец имеет тип домена, этот столбец содержит имя домена, иначе — NULL.
udt_catalogsql_identifierИмя базы данных, в которой определён тип (если применимо, нижележащий тип домена) столбца (всегда текущая база)
udt_schemasql_identifierИмя схемы, в которой определён тип (если применимо, нижележащий тип домена) столбца (всегда текущая база)
udt_namesql_identifierИмя типа данных столбца (если применимо, нижележащий тип домена)
scope_catalogsql_identifierОтносится к функциональности, отсутствующей в PostgreSQL
scope_schemasql_identifierОтносится к функциональности, отсутствующей в PostgreSQL
scope_namesql_identifierОтносится к функциональности, отсутствующей в PostgreSQL
maximum_cardinalitycardinal_numberВсегда NULL, так как массивы имеют неограниченную максимальную ёмкость в PostgreSQL
dtd_identifiersql_identifierИдентификатор дескриптора типа данных столбца, уникальный среди всех дескрипторов типов, относящихся к таблице. Он в основном полезен для соединения с другими экземплярами таких идентификаторов. (Конкретный формат идентификатора не определён и не гарантируется, что он останется неизменным в будущих версиях.)
is_self_referencingyes_or_noОтносится к функциональности, отсутствующей в PostgreSQL
is_identityyes_or_noОтносится к функциональности, отсутствующей в PostgreSQL
identity_generationcharacter_dataОтносится к функциональности, отсутствующей в PostgreSQL
identity_startcharacter_dataОтносится к функциональности, отсутствующей в PostgreSQL
identity_incrementcharacter_dataОтносится к функциональности, отсутствующей в PostgreSQL
identity_maximumcharacter_dataОтносится к функциональности, отсутствующей в PostgreSQL
identity_minimumcharacter_dataОтносится к функциональности, отсутствующей в PostgreSQL
identity_cycleyes_or_noОтносится к функциональности, отсутствующей в PostgreSQL
is_generatedcharacter_dataОтносится к функциональности, отсутствующей в PostgreSQL
generation_expressioncharacter_dataОтносится к функциональности, отсутствующей в PostgreSQL
is_updatableyes_or_noYES, если столбец допускает изменение, или NO в противном случае (столбцы в базовых таблицах всегда изменяемые, но в представлениях — не обязательно)

Так как типы данных могут определяться в SQL множеством способов и PostgreSQL добавляет дополнительные варианты, представление типов в информационной схеме может быть довольно сложным. Столбец data_type предназначен для идентификации нижележащего встроенного типа столбца. В PostgreSQL это означает, что данный тип определён в схеме системного каталога pg_catalog. Этот столбец может быть полезным, если приложение способно особым образом воспринимать встроенные типы (например, форматировать числовые типы по-другому или задействовать данные в столбцах точности). Столбцы udt_name, udt_schema и udt_catalog всегда указывают на нижележащий тип данных столбца, даже если столбец основан на домене. (Так как в PostgreSQL встроенные типы не отличаются от определённых пользователем, в этом представлении выводятся и они. Это расширение стандарта SQL.) Эти столбцы должны учитываться, когда приложению нужно обрабатывать данные в зависимости от типа, так как в этом случае не важно, основан ли столбец на домене. Если столбец основан на домене, на него указывают столбцы domain_name, domain_schema и domain_catalog. Если вы хотите связать столбцы с их типами данных и обработать домены как отдельные типы, вы можете записать coalesce(domain_name, udt_name) и т. п.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy