Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 34. Информационная схема | След. |
34.16. columns
Представление columns содержит информацию обо всех колонках таблиц (или колонках представлений) в базе данных. Системные колонки (oid и т. д.) в нём не показываются. Оно содержит только те колонки, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторые права).
Таблица 34-14. Колонки columns
Имя | Тип данных | Описание |
---|---|---|
table_catalog | sql_identifier | Имя базы данных, содержащей таблицу (всегда текущая база) |
table_schema | sql_identifier | Имя схемы, содержащей таблицу |
table_name | sql_identifier | Имя таблицы |
column_name | sql_identifier | Имя колонки |
ordinal_position | cardinal_number | Порядковый номер колонки в таблице (нумерация начинается с 1) |
column_default | character_data | Выражение по умолчанию для колонки |
is_nullable | yes_or_no | YES, если колонка может содержать NULL, или NO, если она не принимает NULL. Не будет принимать NULL колонка с ограничением не-NULL, но возможны и другие варианты. |
data_type | character_data | Тип данных колонки, если это встроенный тип, либо ARRAY, если это массив (в этом случае обратитесь к представлению element_types), иначе — USER-DEFINED (в этом случае тип определяется в udt_name и связанных колонках). Если колонка основана на домене, данная колонка показывает нижележащий тип домена (а сам домен показывается в domain_name и связанных колонках). |
character_maximum_length | cardinal_number | Если в data_type указан тип текстовой или битовой строки, это поле задаёт её объявленную максимальную длину; NULL для всех других типов данных, либо если максимальная длина не объявлена. |
character_octet_length | cardinal_number | Если в data_type указан тип символьной строки, это поле задаёт её максимально возможный размер в октетах (байтах); NULL для всех других типов данных. Максимальный размер в октетах зависит от объявленной максимальной длины в символах (см. выше) и от кодировки сервера. |
numeric_precision | cardinal_number | Если в data_type указан числовой тип, эта колонка содержит точность (объявленную или неявную) типа для целевой колонки. Точность определяет число значащих цифр. Она может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно колонке numeric_precision_radix. Для всех других типов данных эта колонка содержит NULL. |
numeric_precision_radix | cardinal_number | Если в data_type указан числовой тип, в этой колонке определяется, по какому основанию задаются значения в колонках numeric_precision и numeric_scale. Возможные варианты: 2 или 10. Для всех других типов данных эта колонка содержит NULL. |
numeric_scale | cardinal_number | Если в data_type указан точный числовой тип, эта колонка содержит масштаб (объявленный или неявный) типа для целевой колонки. Масштаб определяет число значащих цифр справа от десятичной точки. Он может выражаться в десятичных (по основанию 10) или двоичных (по основанию 2) цифрах, согласно колонке numeric_precision_radix. Для всех других типов данных эта колонка содержит NULL. |
datetime_precision | cardinal_number | Если в data_type указан тип даты, времени, отметки времени или интервала, эта колонка содержит точность (объявленную или неявную) в долях секунды типа для целевой колонки, то есть число десятичных цифр, сохраняемых после десятичной точки в значении секунд. Для всех других типов данных эта колонка содержит NULL. |
interval_type | character_data | Если в data_type указан тип интервала, эта колонка определяет, какие поля принимает интервал в целевой колонке, например: YEAR TO MONTH, DAY TO SECOND и т. д. Если ограничения для полей не заданы (то есть, интервал принимает все поля), и для любых других типов данных это поле содержит NULL. |
interval_precision | cardinal_number | Относится к функциональности, отсутствующей в PostgreSQL (см. поле datetime_precision, определяющее точность в долях секунды для типов интервалов) |
character_set_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL |
character_set_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL |
character_set_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL |
collation_catalog | sql_identifier | Имя базы данных, содержащей правило сортировки колонки (это всегда текущая база), либо NULL, если это правило по умолчанию или тип данных колонки несортируемый |
collation_schema | sql_identifier | Имя схемы, содержащей правило сортировки колонки, либо NULL, если это правило по умолчанию или тип данных колонки несортируемый |
collation_name | sql_identifier | Имя правила сортировки колонки, либо NULL, если это правило по умолчанию или тип данных колонки несортируемый |
domain_catalog | sql_identifier | Если целевая колонка имеет тип домена, эта колонка содержит имя базы данных, в которой определён домен (всегда текущая база), иначе NULL. |
domain_schema | sql_identifier | Если целевая колонка имеет тип домена, эта колонка содержит имя схемы, в которой определён домен, иначе NULL. |
domain_name | sql_identifier | Если целевая колонка имеет тип домена, эта колонка содержит имя домена, иначе NULL. |
udt_catalog | sql_identifier | Имя базы данных, в которой определён тип (если применимо, нижележащий тип домена) колонки (всегда текущая база) |
udt_schema | sql_identifier | Имя схемы, в которой определён тип (если применимо, нижележащий тип домена) колонки (всегда текущая база) |
udt_name | sql_identifier | Имя типа данных колонки (если применимо, нижележащий тип домена) |
scope_catalog | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL |
scope_schema | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL |
scope_name | sql_identifier | Относится к функциональности, отсутствующей в PostgreSQL |
maximum_cardinality | cardinal_number | Всегда NULL, так как массивы имеют неограниченную максимальную ёмкость в PostgreSQL |
dtd_identifier | sql_identifier | Идентификатор дескриптора типа данных колонки, уникальный среди всех дескрипторов типов, относящихся к таблице. Он в основном полезен для соединения с другими экземплярами таких идентификаторов. (Конкретный формат идентификатора не определён и не гарантируется, что он останется неизменным в будущих версиях.) |
is_self_referencing | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL |
is_identity | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL |
identity_generation | character_data | Относится к функциональности, отсутствующей в PostgreSQL |
identity_start | character_data | Относится к функциональности, отсутствующей в PostgreSQL |
identity_increment | character_data | Относится к функциональности, отсутствующей в PostgreSQL |
identity_maximum | character_data | Относится к функциональности, отсутствующей в PostgreSQL |
identity_minimum | character_data | Относится к функциональности, отсутствующей в PostgreSQL |
identity_cycle | yes_or_no | Относится к функциональности, отсутствующей в PostgreSQL |
is_generated | character_data | Относится к функциональности, отсутствующей в PostgreSQL |
generation_expression | character_data | Относится к функциональности, отсутствующей в PostgreSQL |
is_updatable | yes_or_no | YES, если колонка допускает изменение, или 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) и т. п.
Пред. | Начало | След. |
column_udt_usage | Уровень выше | constraint_column_usage |