Prueba esto:
INSERT INTO tabla2 SELECT campo1,campo2,... FROM tabla1;
Para más información:
http://www.postgresql.org/docs/8.4/static/dml-update.html
ing. José Fermín Francisco Ferreras
San Francisco de Macorís, Rep. Dom.
> Date: Fri, 30 Apr 2010 12:44:11 -0400
> To: [email protected]
> Subject: [pgsql-es-ayuda] Insert a partir de un select
> From: [email protected]
>
> Hola a todos,
>
> Necesito hacer un insert a partir de un select, algo así como,
>
> tengo estas dos tablas y necesito hacer un insert masivo en la segunda a
> partir de la primera, he probado esto pero nada y tengo un poco premura,
> necesito ayuda.
>
> INSERT INTO mayor
> (fecha,id_usu,id_cpa,id_uni,cuenta,subcuenta,id_ncu,saldo) VALUES IN
> (SELECT fecha,id_usu,id_cpa,id_uni,cuenta,subcuenta,id_ncu,saldo_final
> WHERE fecha'una_fecha_dada');
>
>
> /*
> * mayor
> */
>
> CREATE TABLE mayor(
> id_may serial UNIQUE PRIMARY KEY,
> fecha timestamp DEFAULT now(),
> id_usu int REFERENCES usuarios(id_usu),
> id_cpa int REFERENCES centros_pagos(id_cpa),
> id_uni int REFERENCES unidades(id_uni),
> cuenta varchar(3) NOT NULL,
> subcuenta varchar(4) DEFAULT '0000',
> id_ncu int REFERENCES naturaleza_cuentas(id_ncu),
> descripcion varchar(50) NOT NULL,
> saldo_inicial numeric(10,2) DEFAULT 0.00 CONSTRAINT
> saldo_inicial_positivo CHECK(saldo_inicial>=0),
> debito numeric(10,2) DEFAULT 0.00 CONSTRAINT debito_positivo
> CHECK(debito>=0),
> credito numeric(10,2) DEFAULT 0.00 CONSTRAINT credito_positivo
> CHECK(credito>=0),
> saldo_final numeric(10,2) DEFAULT 0.00
> );
>
> /*
> * mayor_historia
> */
>
> CREATE TABLE mayor_historia(
> id_mhi serial UNIQUE PRIMARY KEY,
> fecha timestamp DEFAULT now(),
> id_usu int REFERENCES usuarios(id_usu),
> id_pro int REFERENCES provincias(id_pro),
> id_mun int REFERENCES municipios(id_mun),
> id_cpa int REFERENCES centros_pagos(id_cpa),
> id_uni int REFERENCES unidades(id_uni),
> cuenta varchar(3) NOT NULL,
> subcuenta varchar(4) DEFAULT '0000',
> id_ncu int REFERENCES naturaleza_cuentas(id_ncu),
> saldo numeric(10,2) DEFAULT 0.00
> );
>
> --
> Saludos,
>
> Luis
>
> --
>
> Este mensaje le ha llegado mediante el servicio de correo electronico que
> ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema
> Nacional de Salud. La persona que envia este correo asume el compromiso de
> usar el servicio a tales fines y cumplir con las regulaciones establecidas
>
> Infomed: http://www.sld.cu/
> -
> Enviado a la lista de correo pgsql-es-ayuda ([email protected])
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
_________________________________________________________________