Créer une table temporaire dans MySQL

Preet Sanghavi 30 janvier 2023
  1. Créer une table temporaire de base dans MySQL
  2. Création d’une table temporaire à partir de la requête SELECT
Créer une table temporaire dans MySQL

Dans ce tutoriel, nous visons à explorer différentes méthodes pour créer une table temporaire dans MySQL.

L’une des principales caractéristiques d’une table temporaire est qu’elle joue un rôle déterminant dans le stockage des données provisoires. Cette fonctionnalité est activée dans MySQL version 3.23 et supérieure.

Ces tables sont perdues lorsque l’utilisateur supprime manuellement la table ou que la session se termine.

Une autre caractéristique d’une table temporaire est que le même nom de la table peut être utilisé dans plusieurs connexions. Ceci est rendu possible car le client ne peut utiliser que la table temporaire créée par lui.

Il existe deux manières principales de créer une table temporaire dans MySQL :

  • Création de table temporaire de base.
  • Création d’une table temporaire à partir de la requête SELECT.

Cependant, avant de commencer, nous créons un jeu de données factice avec lequel travailler. Ici, nous créons un tableau, student_details, avec quelques lignes dedans.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La requête ci-dessus crée un tableau avec des lignes contenant le prénom et le nom de l’étudiant. Afin de visualiser les entrées dans les données, nous utilisons le code suivant :

SELECT * FROM student_details;

Le code ci-dessus donnerait la sortie suivante :

stu_id	stu_firstName	stu_lastName
1	      Preet	        Sanghavi
2	      Rich	        John
3	      Veron	        Brow
4	      Geo	        Jos
5	      Hash	        Shah
6	      Sachin	    Parker
7	      David	        Miller

Créons maintenant une table temporaire avec le nom students_temporary similaire à la table student_details.

Créer une table temporaire de base dans MySQL

L’une des méthodes les plus basiques pour créer une table temporaire consiste à utiliser le mot-clé TEMPORARY. Nous pouvons créer une table temporaire nommée students_teporary comme suit :

-- Basic temporary table creation
CREATE TEMPORARY TABLE students_teporary(
      stu_id int,
      stu_firstName varchar(255) DEFAULT NULL,
      stu_lastName varchar(255) DEFAULT NULL,
      primary key(stu_id)
    );

Le code ci-dessus crée une table temporaire nommée students_temporary. Ensuite, insérons quelques entrées dans ce tableau avec le code suivant :

-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

La sortie du code susmentionné se traduit par une table temporaire comme suit :

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

Création d’une table temporaire à partir de la requête SELECT

Une autre méthode de création de tables temporaires consiste à utiliser l’instruction select. Cette méthode nous aide à répliquer une table entière dans une table temporaire avec les mêmes entités et types de données. Essayons de créer une table temporaire students_details_temporary en utilisant l’instruction select. Nous pouvons le faire avec le code suivant.

-- Replicating the students_details table
CREATE TEMPORARY TABLE IF NOT EXISTS students_details_temporary AS (SELECT * FROM students_details);

Remarque : Dans la requête ci-dessus, nous utilisons IF NOT EXISTS pour nous assurer qu’il n’y a pas de table portant le nom student_details_temporary dans la base de données.

Le code susmentionné donnera la sortie suivante :

stu_id	stu_firstName	stu_lastName
1	        Preet	      Sanghavi
2	        Rich	      John
3	        Veron	      Brow
4	        Geo	          Jos
5	        Hash	      Shah
6			Sachin		  Parker
7			David	      Miller

Comme on peut le voir, une table temporaire avec les mêmes entités et entrées que celle de la table d’origine (student_details) a été générée.

Ainsi, à l’aide des deux méthodes ci-dessus, nous pouvons créer efficacement une table temporaire. Cette table temporaire est supprimée dès que la toute dernière connexion est terminée.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Article connexe - MySQL Table