Leyendo el manual que viene incluído en la carpeta de Postgre, y googleando no consigo el comando que me permita:
-Insertar una nueva columna
-entre otras 2 ya existentes
¿Se puede hacer?.
y la pregunta definitiva: ¿como?. Muchas gracias.
| ||||
Respuesta: Insertar nueva columna entre 2 ya existentes mira esto http://wiki.postgresql.org/wiki/Alter_column_position parece que n o se puede directamente con un comando. saludos
__________________ Without data, You are another person with an opinion. W. Edwads Deming |
| ||||
Respuesta: Insertar nueva columna entre 2 ya existentes No, si no me había hecho a la idea de una solución sencilla, .... por suerte. Incluso el enlace que pones da hasta 2 posibilidades, vaya lujo. Muchas gracias. Me pondré con ello y a ver que tal. Me ha venido bien pq así conozco la orden para copiar de golpe todos los registros de una tabla a otra. EDITO: vaya full, de momento el "truco" de crear nueva tabla y pasar de golpe los datos, SOLO es válido, si lo único que se produce es una intercalación de 2 campos: -del mismo tipo -y que en todo momento ambas tablas tengan la misma estructura (en cuanto a la sucesión de los distintos tipos de campos se refiere). Probaré con el 2º método: ir creando/copiando/borrando columnas en la misma tabla, forzándose el orden deseado (un tetris en toda regla, vamos) Última edición por nekcab; 11/09/2009 a las 02:27 |
| ||||
Respuesta: Insertar nueva columna entre 2 ya existentes Respondo pasado tanto tiempo pq así dejo continuidad a la resolución del problema planteado hace un año: No sé si es pq hace un año se trataba de un par de versiones anteriores, pero con la actual 8.4.4 si se puede: - crear una segunda tabla - copiar aquellas columnas de la tabla original en la nueva, independientemente de que fueran o no consecutivas. Solo se exige: A) que sean del mismo tipo/tamaño/.... B) que en la orden: la secuencia de campos en tabla origen, sea igual que en la tabla destino (independientemente, como digo, de que te saltes alguna, con que corresponda en ambos "extremos"..., vale) Tabla Origen: Cita: Tabla destino:musica=# \d titulos; Tabla ½public.titulos╗ . . . Columna . . . | . . . . . . . Tipo . . . . . . . | Modificadores -------------+------------------+----------- track . . . . . . . . . | numeric(2,0) . . . . . . . | duration . . . . . . | character varying(9) . . | comment . . . . . | character varying(300) | bitrate . . . . . . . | numeric(4,0) . . . . . . . | title . . . . . . . . . | character varying(150) | artist . . . . . . . . | character varying(100) | album . . . . . . . . | character varying(90) | year . . . . . . . . . .| numeric . . . . . . . . . . . | genre . . . . . . . . | character varying(100) | seconds . . . . . . . | numeric(4,0) . . . . . . . | size . . . . . . . . . . | numeric(5,2) . . . . . . . | codec . . . . . . . . | character varying(4) . . | taste_track . . . . | character varying(300) | dvd . . . . . . . . . . | character varying(70) . . | Cita: Orden de copia entre ambas:musica=# \d titulos2; Tabla ½public.titulos2╗ . . . Columna . . . | . . . . . . . .Tipo . . . . . . | Modificadores -------------+-----------------+------------- track . . . . . . . . | numeric(2,0) . . . . . . . | duration . . . . . . | character varying(9) . . | comment . . . . . | character varying(300) | bitrate . . . . . . . | numeric(4,0) . . . . . . . | title . . . . . . . . . | character varying(150) | artist . . . . . . . . | character varying(100) | album . . . . . . . | character varying(90) . | year . . . . . . . . . | numeric . . . . . . . . . . . | genre . . . . . . . . | character varying(100) | seconds . . . . . . | numeric(4,0) . . . . . . . | size . . . . . . . . . | numeric(5,2) . . . . . . . | codec . . . . . . . . | character varying(4) . . | composer . . . . . | character varying(100) | director . . . . . . | character varying(100) | orchestra . . . . . | character varying(150) | taste_track . . . . | character varying(300) | year_edition . . . | numeric(4,0) . . . . . . . | record_label . . . | character varying(100) | dvd . . . . . . . . . . | character varying(70) . | Cita: titulos2(track,duration,comment,bitrate,title,arti st,album,year,genre,seconds,size,codec,dvd) (select track,duration,comment,bitrate,title,artist,album, year,genre,seconds,size,codec,dvd from titulos); |