9

Importar y exportar CSV en Postgres

¿Que es CSV?

Una definición clara y exacta la da Wikipedia.

Los archivos CSV (del inglés comma-separated values) son un tipo de documento en formato abierto sencillo para representar datos en forma de tabla, en las que las columnas se separan por comas y las filas por saltos de línea. […]

Los archivos CSV conforman una de las mejores formas de crear seed’s de información para nuestra aplicación. Importar y exportar CSV en Postgres es muy fácil.

Para nuestro ejemplo tendremos una tabla productos la cuál tendrá un id – nombre – precio – stock.

createtable productos ( 
  idserialnotnull, 
  nombre varchar(40) notnull, 
  precio intnotnull, 
  stock small int 
);

Ahora creamos algunos productos con nuestro editor CSV favorito, si usas Windows puedes utilizar la suite de Office o si usas Linux LibreOffice, o cualquier otro editor de hojas de cálculo que quieras.

captura-de-pantalla-de-2017-10-19-17-53-54.png

Guardé mi hoja de cálculo como archivo CSV y se llama productos.csv

Ahora vamos a nuestra herramienta psql y ya dentro de nuestra terminal y dentro de nuestra base de datos, hacemos lo siguiente.

copy productos (nombre, precio, stock) from ‘/devpolish/documents/productos.csv’ delimiter ‘,’ csv header;

En mi caso estoy utilizando Linux, pero si usas Windows sólo coloca la ruta de tu archivo CSV.

Ahora si haces una consulta

select * from productos;

Veremos nuestros productos del seed.

Ahora para importar nuestra tabla hacemos lo siguiente.


copy productos to ‘/devpolish/tmp/productos.csv’ delimiter ‘,’ csv header;

Esto es todo ¯_(ツ)_/¯

Escribe tu comentario
+ 2
Ordenar por:
2
7Puntos
6 años

Y si quiero importar solo datos a una columna de mi tabla?

1
94281Puntos
3 años

No me funcionó…como todo en base de datos.

1
3 años

Gracias. Lo busqué en varias rutas y cursos y lo vine a conseguir antes dentro de la comunidad. Buen aporte

1
7Puntos
6 años

Y si tengo una tabla con 4 campos y quiero exportar datos desde un documento externos (csv) a solo una columna de esa tabla?