El comando COPY nos sirve para generar archivos .CSV, allí hacemos la copia de los datos y luego la leemos. En la documentación de postgres nos recalca que, bajo Windows, debemos utilizar para el path los caracteres E'path', sino lo toma como un path relativo. Otro dato a tener en cuenta es crear una carpeta con los permisos de lectura/escritura. En este caso, yo cree una car
peta tmp en la raíz de C.
En este ejemplo lo usamos para copiar toda la tabla, sin embargo, también podemos filtrar los datos a copiar mediante una consulta SQL. Ver>
Abrimos la consola, ejecutamos psql desde la base de datos origen y escribimos
copy nombre_tabla to E'path' USING delimiters ';';
Luego, en otra consola, ejecutamos psql y nos conectamos a la base de datos destino y tipeamos
copy nombre_tabla from E'path' USING delimiters ';';
Ejemplo: copy usuario from E'C:\\tmp\\usuhoy.csv' USING delimiters ';';
*Nótese del uso de \\ como separador
*delimiters representa al caracter que usamos para separar las columnas. Si entramos a editar el archivo CSV, veremos que en este caso están separados por ; (puntos y comas)
Ej CSV:
1;Ford;Azul;15000
2:Chevrolet;Rojo;25000
Espero haber clarificado un poco lo que está en la red