PostgreSQL Prático/Administração/Importar e Exportar

9.2 - Importar e ExportarEditar

Estando na console e usando pg_dumpall e psql:


Efetuando backup:

pg_dumpall > bancos.sql - Para preservar os OIDs use a opção -o no pg_dumpall.


Restore de seus dados:

psql -d postgres -f bancos.sql


Para importar scripts gerados via pg_dump de dentro do psql devemos utilizar o comando

\i /path/script.sql

\i ./script.sql -- Também para o windows com o arquivo no diretório atual

Para importar arquivos texto com delimitadores, tipo TXT, CSV ou binários utilizamos os comandos do banco (psql), como usuário do banco:


Importando:

\COPY tabela FROM ‘script.csv’

\COPY paises FROM 'paises.csv';


Exportando:

CREATE TEMP TABLE paises AS SELECT * FROM teste WHERE nome LIKE '%tina%';

\COPY paises TO '/usr/teste.copy';


Com Delimitadores

\COPY tabela FROM '/arquivo.csv' DELIMITERS '|';

\COPY tabela TO '/arquivo.txt' DELIMITERS '|';

Obs.: O arquivo teste.copy deve ter permissão de escrita para o user do banco.


Importar uma planilha do Excel ou do Calc do OpenOffice para uma tabela:

Gerando um arquivo CSV no OpenOffice Calc

- Abrir calc e selecionar e copiar a área a importar

- Abrir uma nova planilha

- Clicar com o botão direito sobre a primeira célula e Colar Especial

- Desmarque Colar tudo, marque Números, desmarque Fórmulas e OK

- Tecle Ctrl+S para salvar

- Em Tipo de arquivo escolha Texto CSV, digite o nome e Salvar. Confirme

- Como Delimitador de Campo escolha Tabulação

- Em Delimitador de texto delete as aspas e OK

- Ignore a mensagem de erro, caso apareça.


Importar o arquivo texto CSV para uma tabela com estrutura semelhante à do arquivo csv:


su - postgres

psql nomebanco

\copy nometabela from /home/nomearquivo.csv

No Windows

\copy nometabela from ./arquivo.csv -- o arquivo estando no path do usuário


Exportar um Banco Access para uso no PostgreSQL ou outros bancos

Selecionar a tabela e Exportar

Escolher o tipo de arquivos Texto (txt, csv, ...)

Em avançado: Delimitador de campos – Tabulação

Qualificador de texto – remover (deixar em branco)