Créez une table temporaire dans PostgreSQL

Introduction

Lorsque vous travaillez avec de grandes tables dans PostgreSQL, vous pouvez constater que vous devez interagir encore et encore avec un certain sous-ensemble de lignes d’une table. Au lieu de filtrer à plusieurs reprises votre table pour obtenir ce sous-ensemble de données, il est plus efficace de récupérer ces lignes une fois et de les stocker dans une table temporaire. Ce tutoriel vous apprendra à créer une table temporaire et à la supprimer ultérieurement lorsque vous aurez terminé.

Prérequis

Si vous souhaitez suivre les exemples PostgreSQL dans ce tutoriel, assurez-vous que PostgreSQL server est installé et configuré sur votre machine. Le service doit fonctionner en arrière-plan.

Les utilisateurs de Linux et Windows peuvent télécharger PostgreSQL ici.

Qu’est-ce qu’une table temporaire PostgreSQL ?

Les tables temporaires existent dans leur propre schéma unique, vous ne pouvez donc pas attribuer de nom de schéma lorsque vous créez ce type de table. Une table temporaire n’existe que tant que sa session de base de données – cela signifie que PostgreSQL supprime automatiquement la table temporaire à la fin d’une transaction ou d’une session.

Exemple de cas d’utilisation d’une table temporaire PostgreSQL

Les tables temporaires sont utiles pour les développeurs d’applications et les administrateurs de bases de données qui interagissent régulièrement avec de grandes bases de données. Ils sont particulièrement utiles dans les situations qui nécessitent l’interrogation ou le traitement répétés d’un petit sous-ensemble de données dans une table plus grande.

Dans ce cas, nous pouvons stocker les données filtrées dans la table temporaire; nous pouvons ensuite utiliser cette table temporaire encore et encore sans aller dans la base de données réelle. Ces tables résident dans tempdb, qui est également un système de base de données.

Il existe deux façons de créer une table temporaire. Tout d’abord, nous pouvons utiliser la clause TEMPORARY dans l’instruction CREATE TABLE:

1
2
3
CRÉER UNE TABLE TEMPORAIRE your_temp_table_name(
);

Alternativement, nous pouvons utiliser la clause TEMP:

1
2
3
CRÉER UNE TABLE TEMPORAIRE your_temp_table_name(

);

Les tables temporaires ne sont visibles que dans la session dans laquelle elles ont été créées ; aucune autre session ne pourra les afficher.

Création d’une table temporaire Exemple

Pour créer une table temporaire, nous devons d’abord nous connecter à notre serveur PostgreSQL à l’aide de la commande psql. Ensuite, nous allons créer une base de données, en la nommant dbsandbox.

Nous pouvons accomplir cela en utilisant l’instruction suivante:

1
2
3
4
postgres =#CREATE DATABASE sandboxdb;
CREATE DATABASE
postgres=#\c sandboxdb;
Vous êtes maintenant connecté À LA BASE DE DONNÉES « sandboxdb » EN TANT QU’UTILISATEUR « teamsolo ».

Une fois la base de données créée, il est temps de créer notre table temporaire à l’aide de l’instruction suivante:

1
2
sandboxdb = # CRÉER UNE TABLE TEMPORAIRE temptbl (un INT);
CRÉER UNE TABLE

Avec cette instruction, nous avons créé notre table TEMP nommée temptbl dans la base de données sandboxdb.

Pour vérifier que la table a bien été créée, nous pouvons utiliser une instruction SELECT:

1
SÉLECTIONNEZ * DE temptbl;

Le résultat de notre SELECT devrait ressembler à ce qui suit:

1
2
3
c

(0 LIGNES)

Plus tôt dans cette section, nous avons mentionné qu’une table temporaire n’est visible que par la session en cours dans laquelle elle a été créée. Testons et voyons si c’est vrai en créant une autre session dans PostgreSQL. Dans cette nouvelle session, nous allons essayer de nous connecter au temptable. Pour ce faire, quittez d’abord la connexion actuelle à l’aide de la commande \q, puis essayez de vous reconnecter à nouveau en utilisant les étapes précédentes. Un exemple de ce processus est illustré ci-dessous:

1
2
3
4
5
postgres=#\c sandboxdb;
Vous êtes maintenant connecté À LA BASE DE DONNÉES « sandboxdb » EN TANT QU’UTILISATEUR « teamsolo ».
sandboxdb = # SELECT* FROM temptbl;
ERREUR : la relation « temptbl » n’existe PAS
LIGNE 1: SELECT* FROM temptbl;

Notez que nous avons eu une erreur lorsque nous avons essayé d’exécuter l’opération SELECT contre la table temporaire temptbl. Cela se produit parce que le temptbl a été immédiatement supprimé par PostgreSQL dès que nous avons exécuté la commande \q et mis fin à cette session particulière.

Suppression d’une table Temporaire Exemple

Dans la section précédente, nous avons appris comment créer une table temporaire. Maintenant, parlons de la façon de supprimer ou de déposer une table temporaire.

La syntaxe utilisée pour supprimer une table temporaire est illustrée ci-dessous:

1
DROP TABLE your_temp_table_name;

Notez que l’instruction DROP TABLE n’a pas de clauses comme TEMPORARY et TEMP, contrairement à l’instruction CREATE TABLE.

Disons que nous voulions supprimer le temptbl pendant sa session – nous pouvons le faire en utilisant l’instruction suivante:

1
sandboxdb = # TABLE DE CHUTE temptbl;

Conclusion

Il ne fait aucun doute que les tables temporaires peuvent vous aider à optimiser les interactions de votre base de données, vous permettant de stocker un sous-ensemble de lignes plus petit à partir d’une table plus grande au lieu de filtrer les mêmes données encore et encore. Dans ce tutoriel, nous avons expliqué comment créer une table temporaire et comment en supprimer une à l’aide des instructions CREATE TEMP TABLE et DROP TABLE. En utilisant les exemples que nous avons fournis comme guide, vous pourrez créer et gérer des tables temporaires pour vos propres interactions de base de données.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.