Comment copier un tableau d'une base de données à une autre dans PostgreSQL

Comment copier un tableau d'une base de données à une autre dans PostgreSQL
Lorsque vous travaillez avec PostgreSQL, les données sont stockées dans des tables. Ainsi, lorsque vous créez une base de données pour stocker une entité donnée, l'entité est représentée comme une table dans laquelle vous insérez les valeurs. Vous pouvez avoir différentes tables dans une base de données donnée, mais vous ne pouvez pas ouvrir deux bases de données simultanément.

Par conséquent, lorsque vous souhaitez accéder à un tableau dans une autre base de données, la meilleure option est de la copier et de toutes ses données dans la base de données actuelle. Nous sommes principalement habitués à la copie des tables dans la même base de données. Cependant, notre objectif aujourd'hui est de copier un tableau d'une base de données à une autre dans PostgreSQL. Discutons!

Guide étape par étape pour copier un tableau d'une base de données à une autre dans PostgreSQL

PostgreSQL s'appuie sur l'outil "PG_DUMP" pour copier les tables dans différentes bases de données. La table copiée verra toutes ses données déplacées vers la nouvelle base de données. De cette façon, vous aurez un moyen rapide de dupliquer le tableau lorsque vous travaillez avec différentes bases de données.

Différentes étapes sont impliquées dans la copie d'une table d'une base de données à une autre dans PostgreSQL. Pour cet exemple, nous avons installé le postgresql sur Ubuntu, et nous y accéderons à partir de son shell. Les étapes sont similaires lorsque vous travaillez avec un autre environnement tel que Windows, avec seulement une différence mineure.

Ouvrez votre shell postgresql

Vous devez d'abord accéder au shell PostgreSQL pour accéder au tableau que vous souhaitez copier d'une base de données à un autre. Les commandes suivantes affichent la base de données PostgreSQL. Vous pouvez saisir votre mot de passe pour accéder à la base de données avec le compte utilisateur spécifié:

$ sudo -iu postgres
$ psql

Énumérez les bases de données disponibles

Vous devez vérifier la base de données disponible pour déterminer la base de données source et de destination pour le tableau que vous souhaitez copier.

# \ l

Vous pouvez rapidement en créer un si vous n'avez pas de base de données cible.

Pour notre exemple, nous utilisons «Postgres» comme base de données source et avons le «Linuxdemo» comme base de données cible où nous copie le tableau dans la base de données «Postgres».

Trouvez le tableau cible

À partir du shell terminal, nous pouvons déjà noter que nous sommes connectés à la base de données «Postgres». Dans ce cas, nous pouvons répertorier les tables disponibles en utilisant le \ dt Commande pour localiser le tableau que nous souhaitons copier dans notre nouvelle base de données.

# \ dt

Ici, nous n'avons qu'une seule table nommée «Floatdemo». Nous pouvons l'ouvrir pour vérifier son contenu avant de le copier.

Vérifiez si le tableau n'existe pas dans la base de données cible

Avant de copier votre table, vous devez vous assurer que la base de données cible n'a pas de tableau qui partage le même nom que celui que vous souhaitez copier. De même, ne créez pas un tableau qui augmenterait une erreur lors de la copie du tableau cible.

Remplacez la commande suivante par votre base de données cible:

# \ c linuxdemo;

Ensuite, énumérez les tables de la base de données pour vérifier s'il y a une correspondance à celle que vous souhaitez copier.

# \ dt

Exécuter la commande Copie

La commande pour copier le tableau dépend si vous utilisez Windows ou Ubuntu. Dans le cas de Windows, vous devez trouver le chemin d'accès aux fichiers postgresql de votre système. Par exemple, si vous exécutez PostgreSQL V14, votre chemin sera probablement C: \ Program Files \ PostgreSQL \ 14 \ bin. Une fois que vous avez obtenu le chemin, ouvrez CMD et accédez à ce répertoire. Vous exécutez ensuite la commande de copie sur votre CMD.

Dans notre cas, nous utilisons Ubuntu, et comment nous exécutons la commande est différente. Ici, ouvrez la coque PostgreSQL sur votre terminal. De là, utilisez la syntaxe suivante pour copier le tableau de la base de données source à la base de données cible. Notez que la commande est la même pour Windows et Ubuntu.

pg_dump -u postgres -T-Target-Table Source-Database | PSQL -U Postgres Target-Database

Dans l'exemple suivant, «Floatdemo» est la table cible et le «Postgres» qui suit est notre base de données source. La «Linuxdemo» est la base de données cible. Alors, remplacez la même chose sur votre cas. Ensuite, exécutez la commande.

Entrez votre mot de passe postgresql pour l'utilisateur connecté pour authentifier l'action. Vous obtiendrez un message de sortie confirmant que l'action de copie est terminée avec succès.

Vérifiez la table copiée

Après avoir exécuté la commande Copie, la dernière étape consiste à vérifier si l'action est terminée comme prévu. Ouvrez votre shell postgresql et connectez-vous à la base de données cible. Une fois connecté, énumérez les tables disponibles pour vérifier si une nouvelle entrée est créée pour la table copiée. Si c'est le cas, vérifiez son contenu à l'aide de la commande SELECT *.

Nous confirmons que notre table en double est copiée avec succès de la base de données source à la base de données cible dans PostgreSQL.

Conclusion

PostgreSQL vous permet de copier rapidement une table d'une base de données à une autre en utilisant la commande "pg_dump". Nous avons expliqué le processus étape par étape tout en fournissant un exemple pratique. Vous comprenez maintenant comment copier des tables dans les bases de données postgresql.