Ícone do site SOLOWEB Tecnologia

Diferença entre os comandos copy e \copy no PostgreSQL

Os comandos copy e \copy no PostgreSQL são usados para copiar dados entre tabelas e arquivos. No entanto, existem algumas diferenças importantes entre os dois comandos.

Precisando de um servidor especifico para seu banco de dados? Fale conosco. www.soloweb.com.br

O comando copy é um comando SQL que pode ser usado em qualquer cliente PostgreSQL. O comando \copy é um comando específico do cliente psql, que é o cliente de linha de comando padrão do PostgreSQL.

O comando copy é mais poderoso do que o comando \copy. O comando copy pode copiar dados de uma tabela para outra, de um arquivo para uma tabela e de uma tabela para um arquivo. O comando \copy só pode copiar dados de uma tabela para um arquivo.

O comando copy também é mais eficiente do que o comando \copy. O comando copy usa o formato de dados nativo do PostgreSQL para copiar os dados, o que é mais eficiente do que o formato de dados CSV usado pelo comando \copy.

Em geral, o comando copy é a melhor opção para copiar dados entre tabelas e arquivos no PostgreSQL. O comando \copy só deve ser usado se você precisar copiar dados para um arquivo CSV.

Veja também

Aqui está um exemplo de como usar o comando copy para copiar dados de uma tabela para outra:

copy table_a to table_b;

Este comando copiará todos os dados da tabela table_a para a tabela table_b.

Aqui está um exemplo de como usar o comando \copy para copiar dados de uma tabela para um arquivo:

\copy table_a to '/path/to/file.csv' with csv header;

Este comando copiará todos os dados da tabela table_a para o arquivo /path/to/file.csv. O parâmetro header especifica que os cabeçalhos de coluna devem ser incluídos no arquivo.

Aqui estão mais alguns exemplos de como usar os comandos copy e \copy no PostgreSQL:

copy table_a from '/path/to/file.csv' with csv header;
copy table_a to '/path/to/file.txt' with csv header csv format;
copy table_a to table_b where id > 100;
copy table_a to table_b order by id;
copy table_a to table_b where id > 100;
copy table_a to table_b where name like '%John%';
copy table_a to table_b where created_at > now();
copy table_a to table_b where id > 100 and name like '%John%';
copy table_a to 'table_a.csv' with csv header;
copy table_a to 'table_a_filtered.csv' with csv header where id > 100;
copy table_a to 'table_a_filtered_john.csv' with csv header where name like '%John%';
copy table_a to 'table_a_filtered_recent.csv' with csv header where created_at > now();
copy table_a to 'table_a_filtered_john_recent.csv' with csv header where id > 100 and name like '%John%';

Sair da versão mobile