Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Diego AyalaDate: 2010-01-18 13:42:03
Subject: doble guion bajo
Previous:From: coconautaDate: 2010-01-16 13:40:17
Subject: Re: Redireccionar RAISE

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group