Cargando datos con COPY FROM y WHERE en PostgreSQL 12

Desde la reciente versión 12 de PostgreSQL se permite utilizar la clausula WHERE en un comando COPY FROM, el cual permite cargar datos para una tabla desde el sistema de archivos en un servidor PostgreSQL filtrando los datos que no se desean, puede consultar los detalles en:

https://www.postgresql.org/docs/12/sql-copy.html

Esta actividad antes de la versión 12 solo se podía lograr cargando los datos en la tabla y luego borrando los que no se deseaban con un DELETE, por lo cual esta opción de filtrar los datos desde su carga viene siendo una mejora considerable para este proceso. Veamos un ejemplo de uso y las opciones que brinda:


CREATE TABLE copy_where (i int, t text);


--Generamos 100 datos

COPY (select i, md5(i::text) from generate_series (1,100) as i) to '/tmp/dat100.csv' csv header ;

--Generamos 10000 datos

COPY (select i, md5(i::text) from generate_series (1,10000) as i) to '/tmp/dat.csv' csv header ;

--Hacemos la carga de los 10000 datos en la tabla

pruebas12=# copy copy_where from '/tmp/dat.csv' csv header;
COPY 10000
Duración: 135,634 ms

--truncamos la tabla para aplica el WHERE para que solo cargue los datos i <= 100

pruebas12=# truncate copy_where ;

--cargamos solo 100 datos filtrando con el WHERE los datos que cumplan determinada condición, en este caso que la i <=100

copy copy_where from '/tmp/dat.csv' csv header WHERE i <= 100;
COPY 100
Duración: 21,645 ms

Sigue leyendo

Tercera edición del libro PL/pgSQL y otros lenguajes Procedurales en PostgreSQL

Me complace comentarles que ya está publicada la tercera edición  del libro PL/pgSQL y otros lenguajes Procedurales en PostgreSQL, disponible en LULU . Orientado a DBA y programadores además de estudiantes de carreras alienada con la informática que utilicen el motor de base de datos PostgreSQL. El libro  les puede ayudar en la Programación dentro del motor de base de datos PostgreSQL en lenguajes Procedurales, funciones en SQL, PLpgSQL, PLpython, PLR. Variados Ejemplos. En esta edición esta orientada a la version 11 o superior se le agregan contenidos relacionados con la implementación de procedimientos, bloques anónimos y perfilamiento y analisis de codigo de las funciones y procedimientos, esto último un capítulo para ello solamente, se mantienen ejercicios propuestos con posibles respuestas , lo pueden encargar de aquí.

plpgsql-y-otros-lenguajes-procedurales-en-postgresql.

¿Qué cubre el libro?

Se encuentra dividido en cinco capítulos: Sigue leyendo

Accediendo a SQLITE desde PostgreSQL

Como bien he comentado en otros blogs, de los temas que más me fascinan de PostgreSQL es la posibilidad de extensión que posee y en este caso mostraremos como utilizar una extensión de los FDW, específicamente de como acceder a una base de datos SQLITE desde PostgreSQL.

Hace unos días encontré la extensión sqlite_fdw y me decidí a probarla, la cual me resulto fantástica.

Comencemos:
Sigue leyendo