Wednesday, January 10, 2007

Cambiar tamaño de columna en PostgreSQL

Hoy me topé con un problema, tenía que cambiar el tamaño de una columna en PostgreSQL, y google no me estaba ayudando mucho, pues el manual del ALTER TABLE no documenta nada acerca de cómo lograr este cambio, pero después de googlear un rato logré encontrar la solución al problema en este link.

La solución es bastante fácil, y denota la ventaja de tener atributos en vez de amarrar en el almacenamiento esta declaración (en este caso, la longitud de una columna).

Yo no soy muy entendido de bases de datos, ni de las herramientas que puedan existir para evitar estar cambiando la longitud de las columnas, así que a quien le interese, le dejo un script en AWK que hace justamente eso, calcular el máximo de longitud de cada columna.

 BEGIN {
FS=","
}
{
for (i=1; i<=NF; i++)
if (length($i)>MAX[i])
MAX[i]=le
}
END {
print "maximos por campo"
for (i in MAX)
print i "->" MAX[i]
}
Y sólo tienen que asignar a la variable "FS" el valor correcto para el separador de campos, y lo invocan así:

 awk -f archivo.awk archivo_datos.txt

Si el archivo tiene terminación de líneas de tipo "crlf", tienen que filtrar el "\r" o de lo contrario, AWK no funcionará como se espera:

 sed 's/\r//' archivo_datos.txt | awk -f archivo.awk

Espero que a alguno le sirva...



KIT

Labels:

0 Comments:

Post a Comment

<< Home