RE: Cambiar orden de las columnas

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <masc68(at)gmail(dot)com>, <simeo(at)grupoincofisa(dot)com>, <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Cambiar orden de las columnas
Date: 2010-01-16 17:57:59
Message-ID: BLU137-W27E3B7D2600189934CE9B7E3680@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Si usas EMS Manager te lo hace solito. EL EMS hace esto mismo que puso Mario pero graficamente con una flecha hacia arriba :D

EL EMS es gratis al menos una version

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-Soporte PostgreSQL
*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*


> From: masc68(at)gmail(dot)com
> To: simeo(at)grupoincofisa(dot)com; jcasanov(at)systemguards(dot)com(dot)ec
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: RE: [pgsql-es-ayuda] Cambiar orden de las columnas
> Date: Thu, 14 Jan 2010 16:37:12 -0300
>
> Este sería un ejemplo práctico de lo que quieres hacer: Cambiar el orden de las columnas:
>
>
>
>
> -- Crear una tabla temporal
>
> CREATE LOCAL TEMPORARY TABLE "foo0bmfgd" (
> "id" INTEGER,
> "nombre" VARCHAR(100),
> "descripcion" VARCHAR(500),
> "archivo_bytea" BYTEA,
> "archivo_oid" OID,
> "mime" VARCHAR(100),
> "size" DOUBLE PRECISION
> ) WITH OIDS;
>
> --Copiar los datos de a table original a la table temporal
>
> INSERT INTO "foo0bmfgd" ("id", "nombre", "descripcion", "archivo_bytea", "archivo_oid", "mime", "size")
> SELECT "id", "nombre", "descripcion", "archivo_bytea", "archivo_oid", "mime", "size" FROM "public"."foo";
>
> -- Borrar la table original
>
> DROP TABLE "public"."foo";
>
> -- Crear la nueva table con el orden de las columnas que deseas
>
> CREATE TABLE "public"."foo" (
> "id" SERIAL NOT NULL,
> "nombre" VARCHAR(100),
> "descripcion" VARCHAR(500),
> "archivo_bytea" BYTEA,
> "archivo_oid" OID,
> "size" DOUBLE PRECISION,
> "mime" VARCHAR(100),
> CONSTRAINT "foo_pkey" PRIMARY KEY("id")
> ) WITHOUT OIDS;
>
> SELECT setval('"public"."foo_id_seq"', 6, false);
>
>
> -- Copiar los datos desde la table temporal ala table nueva
>
> INSERT INTO "public"."foo" ("id", "nombre", "descripcion", "archivo_bytea", "archivo_oid", "size", "mime")
> SELECT "id", "nombre", "descripcion", "archivo_bytea", "archivo_oid", "size", "mime" FROM "foo0bmfgd";
>
>
>
>
>
> Espero te sirva
>
> Mario Soto
>
>
>
>
>
>
>
>
> -----Mensaje original-----
> De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Simeó Reig
> Enviado el: miércoles, 13 de enero de 2010 6:29
> Para: Jaime Casanova
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: Re: [pgsql-es-ayuda] Cambiar orden de las columnas
>
>
> ----- Original Message -----
> >From: "Jaime Casanova" <jcasanov(at)XXXXXXXXXXXXX>
> >wow!!! cuantas idioteces se encuentra uno en internet!!!
> >nunca, repito, nunca hagas esto...
>
> Suerte que uno con los años se vuelve precavido, y esto añadido al sentido
> comun de que si fuese viable ya lo habrían implantado los de pgadmin, me
> hizo dudar y preguntar antes de nada. Realmente internet es, como todo, una
> fuente de grandísimas cosas pero tambien de memeces impresionantes
>
> >dificilmente el pgadmin decide lo que postgres puede y no puede hacer ;)
> >el verdadero problema es que la posicion fisica de la columna en disco
> >es la misma que la posicion logica, asi que hacer el cambio en ese
>
> Seguro que es complicado, el motivo de cambiar de orden es simplemente pq
> cuando añades un campo nuevo al diseño me gusta que se mantenga un orden y
> me molesta un poquitín que se añada al final de la tabla. Es simplemente una
> cuestión de estética al hacer el diseño de la BD
>
> >maneras "reales" de solucionar esto:
> >1) crea una tabla temporal con el orden de las columnas que necesitas;
> >2) usa pg_dump para hacer un respaldo de la base o quiza solo de la
> >tabla y arregla el script a mano (incluidos los datos claro)
>
> Si, ya los había sopesado
>
> >3) crea una vista con el orden que quieres
>
> Umm, en este caso no me sirve mucho
>
> >4) modifica postgres agregando un campo a pg_attributes para guardar
> >la posicion fisica de la columna, y envia el parche a
> >pgsql-hackers(at)postgresql(dot)org
>
>
> Ya me gustaría ya tener el nivel necesario para hacerlo, se escapa de mis
> posibilidades :-)
>
>
> Gracias Jaime por todo
>
> Un saludo
>
> Simeó Reig
>
>
> --
> TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4766 (20100113) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4767 (20100113) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4772 (20100114) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4772 (20100114) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
> --
> TIP 8: explain analyze es tu amigo

_________________________________________________________________

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Diego Ayala 2010-01-18 13:42:03 doble guion bajo
Previous Message coconauta 2010-01-16 13:40:17 Re: Redireccionar RAISE