Exportar View do PostgreSQL para CSV

Bom galera,
para fazer essa exportação de forma simples, o PostgreSQL disponibiliza o comando COPY.

Uma cópia de tabela completa não tem mistério:

COPY tabela TO 'arquivo.copy'...;

 
Mas se você pretende adicionar a cláusula ‘where’ ou copiar o resultado de uma ‘view’, o comportamento muda um pouco.
Nas versões acima da 8.1, é possível simplificar e rodar o comando da seguinte maneira:

COPY (SELECT * FROM nome_da_view WHERE id<1000) TO "/tmp/view.copy"...;

 
Já da versão 8.1 para baixo, o copy ainda não aceitava queries, e o recomendado por eles, é criar uma tabela temporária com o resultado esperado. E só então executar o COPY de forma normal:

BEGIN;
    CREATE TEMP TABLE tabela_temporaria AS
        SELECT
            id,
            nome
        FROM
            minha_view;
    COPY
        tabela_temporaria
    TO
        '/tmp/resultado_copia.copy'
    WITH
        CSV HEADER DELIMITER ';' QUOTE '"';
ROLLBACK:

 
Simples assim, um abraço!

Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s