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: pgsql-es-ayuda@postgresql.org > Subject: [pgsql-es-ayuda] Insert a partir de un select > From: este...@princesa.pri.sld.cu > > 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 (pgsql-es-ayuda@postgresql.org) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda _________________________________________________________________