Como copiar uma tabela de um banco de dados para outro no PostgreSQL

Como copiar uma tabela de um banco de dados para outro no PostgreSQL
Ao trabalhar com o PostgreSQL, os dados são armazenados em tabelas. Assim, quando você cria um banco de dados para armazenar uma determinada entidade, a entidade é representada como uma tabela na qual você insere os valores. Você pode ter tabelas diferentes em um determinado banco de dados, mas não pode abrir dois bancos de dados simultaneamente.

Portanto, quando você deseja acessar uma tabela em outro banco de dados, a melhor opção é copiá -lo e todos os seus dados no banco de dados atual. Somos usados ​​principalmente para copiar tabelas no mesmo banco de dados. No entanto, nosso foco hoje é como copiar uma tabela de um banco de dados para outro no PostgreSQL. Vamos cavar!

Guia passo a passo para copiar uma tabela de um banco de dados para outro no PostGresql

O PostgreSQL conta com a ferramenta "PG_DUMP" para copiar as tabelas em diferentes bancos de dados. A tabela copiada terá todos os seus dados movidos para o novo banco de dados. Dessa forma, você terá uma maneira rápida de duplicar a tabela ao trabalhar com diferentes bancos de dados.

Diferentes etapas estão envolvidas na cópia de uma tabela de um banco de dados para outro no PostgreSQL. Para este exemplo, temos o PostgreSQL instalado no Ubuntu e o acessamos a partir de seu shell. As etapas são semelhantes ao trabalhar com outro ambiente, como Windows, com apenas uma pequena diferença.

Abra seu shell postgreSql

Você deve primeiro acessar o shell postgreSQL para acessar a tabela que deseja copiar de um banco de dados para outro. Os seguintes comandos trazem o banco de dados PostGresql. Você pode inserir sua senha para acessar o banco de dados com a conta de usuário especificada:

$ sudo -iu postgres
$ psql

Liste os bancos de dados disponíveis

Você deve verificar o banco de dados disponível para determinar o banco de dados de origem e destino da tabela que deseja copiar.

# \eu

Você pode criar rapidamente um se não tiver um banco de dados de destino.

Para o nosso exemplo, usamos "Postgres" como nosso banco de dados de origem e temos o "LinuxDemo" como o banco de dados de destino, onde copiamos a tabela no banco de dados "PostGres".

Encontre a tabela de destino

A partir do shell do terminal, já podemos observar que estamos conectados ao banco de dados "PostGres". Nesse caso, podemos listar as tabelas disponíveis usando o \ dt comando para localizar a tabela que desejamos copiar para nosso novo banco de dados.

# \ dt

Aqui, temos apenas uma tabela chamada "FloatDemo". Podemos abri -lo para verificar seu conteúdo antes de copiá -lo.

Verifique se a tabela não existe no banco de dados de destino

Antes de copiar sua tabela, você deve garantir que o banco de dados de destino não tenha tabela que compartilha o mesmo nome da que você deseja copiar. Da mesma forma, não crie uma tabela que levasse um erro ao copiar a tabela de destino.

Substitua o seguinte comando pelo seu banco de dados de destino:

# \ c linuxDemo;

Em seguida, liste as tabelas no banco de dados para verificar se há alguma correspondência com a que você deseja copiar.

# \ dt

Executar o comando de cópia

O comando para copiar a tabela depende de você usar o Windows ou o Ubuntu. No caso do Windows, você deve encontrar o caminho para os arquivos PostGresql em seu sistema. Por exemplo, se você estiver executando o PostgreSQL v14, seu caminho provavelmente será C: \ Arquivos de Programas \ Postgresql \ 14 \ Bin. Depois de conseguir o caminho, abra a CMD e navegue para esse diretório. Você então executa o comando de cópia em seu CMD.

No nosso caso, estamos usando o Ubuntu e como executamos o comando é diferente. Aqui, abra o shell postgreSQL no seu terminal. A partir daí, use a seguinte sintaxe para copiar a tabela do banco de dados de origem para o banco de dados de destino. Observe que o comando é o mesmo para Windows e Ubuntu.

PG_DUMP -U PostGres -t Target -Table -Database | PSQL -U PostGres -Database

No exemplo a seguir, "FloatDemo" é a tabela de destino e o "PostGres" seguindo o nosso banco de dados de origem. O "LinuxDemo" é o banco de dados de destino. Então, substitua o mesmo no seu caso. Então, execute o comando.

Digite sua senha PostGresql para o usuário conectado para autenticar a ação. Você receberá uma mensagem de saída confirmando que a ação de cópia é concluída com sucesso.

Verifique a mesa copiada

Depois de executar o comando de cópia, a última etapa é verificar se a ação é concluída como esperado. Abra o seu shell postgreSQL e conecte -se ao banco de dados de destino. Depois de conectado, liste as tabelas disponíveis para verificar se uma nova entrada é criada para a tabela copiada. Nesse caso, verifique seu conteúdo usando o comando select *.

Confirmamos que nossa tabela duplicada é copiada com sucesso do banco de dados de origem para o banco de dados de destino no PostgreSQL.

Conclusão

O PostgreSQL permite copiar rapidamente uma tabela de um banco de dados para outro usando o comando "pg_dump". Explicamos o processo passo a passo enquanto fornecemos um exemplo prático. Agora você entende como copiar tabelas nos bancos de dados PostGresql.