Luis D. García escribió: > Lo que se me ocurrió utilizar para esto son tablas auxiliares que sean > copias de las originales, pero que no posean restricciones de claves > primarias. En estas tablas auxiliares se hace la carga de los datos de los > CSV por medio de un COPY y se extraen luego por medio del pg_dump (con la > opciones -d -a para la extracción únicamente de los datos y en base a > inserts). Luego por medio del mecanismo "sed" se cambian los nombres de las > tablas en el archivo resultante del dump, de manera que los INSERTs se hagan > en las tablas originales. > > Ahora, existe una manera más efectiva de llevar a cabo este procedimiento?
Claro, puedes hacer algo como begin; lock table tabla_principal; insert into tabla_principal select * from tabla_temporal where not exists (registro en tabla_principal) commit; El LOCK TABLE es necesario para el caso en que un registro se inserte en la tabla principal mientras este proceso esta funcionando. -- Alvaro Herrera http://www.PlanetPostgreSQL.org/ "Endurecerse, pero jamás perder la ternura" (E. Guevara) -- TIP 6: ¿Has buscado en los archivos de nuestra lista de correo? http://archives.postgresql.org/pgsql-es-ayuda