2011-06-10 46 views
5

Quiero crear una tabla cuyo nombre de campo sea de 100 caracteres, pero el límite de postgres para el número de caracteres es 64, ¿cómo cambiar ese límite a 100?cómo cambiar el límite del nombre de campo de la tabla Postgres?

ejemplo: Crear prueba mesa ( varchar PatientFirstnameLastNameSSNPolicyInsuraceTicketDetailEMRquestionEMR (10) )

Esta creación de la tabla no como el nombre tiene más de 64 caracteres

+1

No me gustaría ser el codificador que necesita escribir ese nombre de columna de 100 caracteres. :-) –

+0

mira http://stackoverflow.com/questions/3836247/how-do-i-change-the-namedatalen-configuration-after-installing-postgresql-9-0 –

+0

@Denis: me han conocido para copiar nombres de columna mucho más cortos de la página SQL de pgAdminIII. Menos errores tipográficos –

Respuesta

10

realidad límite de nombre es igual a NAMEDATALEN - 1 bytes (no necesariamente caracteres), el valor por defecto para NAMEDATALEN es 64.

NAMEDATALEN se determinó en tiempo de compilación (en src/include/pg_config_manual.h). Debes recompilar PostgreSQL con el nuevo límite NAMEDATALEN para que funcione.

Sin embargo, piense en el diseño y la compatibilidad con otros servidores con límite estándar de 63 bytes. No es una práctica común usar nombres tan largos.

0

Es debido a la special name type (ver tabla 8.5), que se usa en pg_catalog. No aceptará más de 63 bytes (más el terminador). No hay solución.

+4

PostgreSQL es de código abierto. Siempre hay * una solución para el software de código abierto. Pero a menudo no es agradable. :-) –

+0

Sí, lo sé, pero dudo que el OP le ensucie las manos. ;-) –

+0

Además, 63 caracteres es, como se señaló en el otro hilo enlazado en comentarios, el tiempo suficiente para aceptar "insanely_stupid_and_totally_impractical_table_or_function_name0" :-D –

Cuestiones relacionadas