Créer une table temporaire dans MySQL
- Créer une table temporaire de base dans MySQL
-
Création d’une table temporaire à partir de la requête
SELECT
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.