Максимальное количество символов в метках (имена таблиц, столбцы и т. Д.) - PullRequest
34 голосов
/ 21 ноября 2011

Надеюсь, этот вопрос не задавался раньше. Кто-нибудь знает лимит символов для доменных имен? Например, если я напишу это:

CREATE DOMAIN d_complement_activite_etablissement AS character varying

создаст домен с именем:

d_complement_activite_etabliss

(Да, я знаю, как считать, но я хочу больше информации по этому вопросу).

Есть ли команда, которая может изменить эту максимальную длину? Является ли эта длина одинаковой для других имен (столбцы, таблицы и т. Д.)?

1 Ответ

57 голосов
/ 22 ноября 2011

Вы спрашиваете:

Есть ли команда, которая может изменить эту максимальную длину? Это длина то же самое для других имен (столбцы, таблицы и т. д.)?

Ответы здесь :

Система использует не более NAMEDATALEN-1 байтов идентификатора; более длинные имена могут быть записаны в командах, но они будут усечены. По умолчанию NAMEDATALEN равно 64, поэтому максимальная длина идентификатора составляет 63 . байт. Если этот предел проблематичен, его можно повысить, изменив NAMEDATALEN константа в src/include/pg_config_manual.h.

жирный акцент мой.

Единственный способ изменить его - взломать исходный код и перекомпилировать PostgreSQL.
Доменные имена являются идентификаторами, как и любые другие. Когда я выполню:

CREATE DOMAIN d_complement_activite_etablissement_or_even_loger_than_that AS text

Я получаю то, что заказал (проверено на PostgreSQL 8.4 - 11):

d_complement_activite_etablissement_or_even_loger_than_that

Ergo: между вами и вашей базой данных должно быть какое-то другое программное обеспечение, обрезающее имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...