Come copiare una tabella da un database a un altro in PostgreSQL

Come copiare una tabella da un database a un altro in PostgreSQL
Quando si lavora con PostgreSQL, i dati vengono archiviati nelle tabelle. Pertanto, quando si crea un database per archiviare una determinata entità, l'entità è rappresentata come una tabella in cui si inseriscono i valori. Puoi avere tabelle diverse in un determinato database ma non è possibile aprire due database contemporaneamente.

Quindi, quando si desidera accedere a una tabella in un altro database, l'opzione migliore è copiarlo e tutti i suoi dati nel database corrente. Siamo abituati principalmente a copiare le tabelle nello stesso database. Tuttavia, il nostro obiettivo oggi è su come copiare una tabella da un database all'altro in PostgreSQL. Scaviamo!

Guida passo-passo per copiare una tabella da un database all'altro in PostgreSQL

PostgreSQL si basa sullo strumento "pg_dump" per copiare le tabelle su diversi database. La tabella copiata avrà tutti i suoi dati spostati nel nuovo database. In questo modo, avrai un modo rapido per duplicare la tabella quando lavori con diversi database.

Passi diversi sono coinvolti nella copia di una tabella da un database all'altro in PostgreSQL. Per questo esempio, abbiamo il postgreSQL installato su Ubuntu e lo accederemo dalla sua shell. I passaggi sono simili quando si lavora con un altro ambiente come Windows, con solo una differenza minore.

Apri il tuo guscio postgresql

È necessario prima accedere alla shell PostgreSQL per accedere alla tabella che si desidera copiare da un database a un altro. I seguenti comandi visualizzano il database PostgreSQL. È possibile inserire la password per accedere al database con l'account utente specificato:

$ sudo -iu postgres
$ PSQL

Elenca i database disponibili

È necessario controllare il database disponibile per determinare il database di origine e destinazione per la tabella che si desidera copiare.

# \ l

Puoi crearne rapidamente uno se non si dispone di un database di destinazione.

Per il nostro esempio, utilizziamo "Postgres" come database di origine e abbiamo il "LinuxDemo" come database di destinazione in cui copiamo la tabella nel database "Postgres".

Trova la tabella target

Dalla shell del terminale, possiamo già notare che siamo connessi al database "Postgres". In tal caso, possiamo elencare le tabelle disponibili utilizzando il \ dt comanda per individuare la tabella che desideriamo copiare nel nostro nuovo database.

# \ dt

Qui, abbiamo solo un tavolo chiamato "Floatdemo". Possiamo aprirlo per verificarne il contenuto prima di copiarlo.

Verifica se la tabella non esiste nel database di destinazione

Prima di copiare la tabella, è necessario assicurarsi che il database di destinazione non abbia tabella che condivida lo stesso nome di quello che si desidera copiare. Allo stesso modo, non creare una tabella che aumenterebbe un errore durante la copia della tabella di destinazione.

Sostituisci il seguente comando con il database di destinazione:

# \ c linuxdemo;

Successivamente, elenca le tabelle nel database per verificare se c'è qualche corrispondenza a quella che si desidera copiare.

# \ dt

Eseguire il comando Copia

Il comando per copiare la tabella dipende dal fatto che si utilizza Windows o Ubuntu. Nel caso di Windows, è necessario trovare il percorso dei file PostgreSQL sul sistema. Ad esempio, se stai eseguendo PostgreSQL V14, il tuo percorso sarà probabilmente C: \ Programmi \ Postgresql \ 14 \ bin. Una volta ottenuto il percorso, apri CMD e vai a quella directory. Quindi esegui il comando Copia sul tuo CMD.

Nel nostro caso, stiamo usando Ubuntu e il modo in cui eseguiamo il comando è diverso. Qui, apri la shell PostgreSQL sul tuo terminale. Da lì, utilizzare la seguente sintassi per copiare la tabella dal database di origine nel database di destinazione. Si noti che il comando è lo stesso per Windows e Ubuntu.

PG_DUMP -U Postgres -t Table Table Source -Database | PSQL -U Postgres Target -Database

Nel seguente esempio, "FloatDemo" è la tabella di destinazione e i "Postgres" che segue è il nostro database di origine. Il "LinuxDemo" è il database di destinazione. Quindi, sostituisci lo stesso sul tuo caso. Quindi, esegui il comando.

Inserisci la password PostgreSQL per l'utente accessibile per autenticare l'azione. Riceverai un messaggio di output che conferma che l'azione di copia è completata correttamente.

Verifica la tabella copiata

Dopo aver eseguito il comando Copy, l'ultimo passaggio è verificare se l'azione è completata come previsto. Apri la shell PostgreSQL e connettiti al database di destinazione. Una volta connessa, elenca le tabelle disponibili per verificare se viene creata una nuova voce per la tabella copiata. In tal caso, controlla il suo contenuto usando il comando Select *.

Confermiamo che la nostra tabella duplicata viene copiata correttamente dal database di origine al database di destinazione in PostgreSQL.

Conclusione

PostgreSQL consente di copiare rapidamente una tabella da un database a un altro usando il comando "pg_dump". Abbiamo spiegato il processo passo-passo, fornendo un esempio pratico. Ora capisci come copiare le tabelle attraverso i database PostgreSQL.