web-dev-qa-db-fra.com

Nombre maximal de caractères dans les étiquettes (noms de table, colonnes, etc.)

J'espère que cette question n'a pas été posée auparavant. Quelqu'un connaît-il la limite de caractères pour les noms de domaine? Par exemple, si j'écris ceci:

CREATE DOMAIN d_complement_activite_etablissement AS character varying

il va créer un domaine avec le nom:

d_complement_activite_etabliss

(Ouais, je sais compter, mais je veux plus d'informations sur le sujet).

Existe-t-il une commande qui peut modifier cette longueur maximale? Cette longueur est-elle la même pour les autres noms (colonnes, tableaux, etc.)?

34
Florin Vistig

Tu demandes:

Existe-t-il une commande qui peut modifier cette longueur maximale? Cette longueur est-elle la même pour les autres noms (colonnes, tableaux, etc.)?

Le réponses manuelles ici :

Le système n'utilise pas plus de NAMEDATALEN-1 octets d'un identifiant; des noms plus longs peuvent être écrits dans des commandes, mais ils seront tronqués. Par défaut, NAMEDATALEN est 64 donc la longueur maximale de l'identifiant est 63 octets. Si cette limite est problématique, elle peut être augmentée en modifiant la constante NAMEDATALEN dans src/include/pg_config_manual.h.

Accentuation sur moi.

La seule façon de le changer est de pirater le code source et de recompiler PostgreSQL.
Les noms de domaine sont des identifiants comme les autres. Quand j'exécute:

CREATE DOMAIN d_complement_activite_etablissement_or_even_loger_than_that AS text

J'obtiens ce que j'ai commandé (testé sur PostgreSQL 8.4 - 11):

d_complement_activite_etablissement_or_even_loger_than_that

Ergo: il doit y avoir un autre logiciel entre vous et votre base de données recadrant le nom.

57
Erwin Brandstetter