Copier une table dans MySQL
-
Cloner une table à l’aide de l’instruction
CREATE TABLE ... AS SELECT
-
Cloner une table avec des données partielles à l’aide de la clause
WHERE
Ce tutoriel a pour but d’explorer différentes méthodes pour créer une copie d’une table dans MySQL.
La table source est également appelée table à copier et la table de destination, appelée table clone, peut provenir de bases de données identiques ou distinctes au sein d’un serveur MySQL.
Nous allons explorer les méthodes suivantes pour copier une table dans MySQL :
- Cloner la table à l’aide de l’instruction
CREATE TABLE ... AS SELECT
. - Cloner une table avec des données partielles à l’aide de la clause
WHERE
.
Avant de commencer, nous allons créer 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. Pour afficher les entrées dans les données, nous utilisons le code suivant :
SELECT * FROM student_details;
Le code ci-dessus donnerait le résultat suivant :
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 copie du tableau ci-dessus avec le nom students_data_backup
.
Cloner une table à l’aide de l’instruction CREATE TABLE ... AS SELECT
L’une des méthodes les plus basiques pour créer une copie de table consiste à utiliser l’instruction CREATE TABLE ... AS SELECT
. On peut faire cette opération avec le code suivant :
-- Basic copy table creation
create table students_data_backup as select * from student_details;
Le code susmentionné crée une table de copie nommée students_data_backup
à partir de la table student_details
qui agit comme la table source. On peut visualiser cette nouvelle table students_data_backup
avec la requête suivante :
select * from students_data_backup;
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
Cloner une table avec des données partielles à l’aide de la clause WHERE
Parfois, seule une certaine partie d’un élément particulier doit être clonée. Nous pouvons utiliser la clause WHERE
et l’instruction CREATE TABLE ... AS SELECT
pour effectuer cette opération.
Essayons de cloner partiellement la table student_details
. Nous choisissons de cloner la table avec les données des cinq premiers stu_id
.
On peut faire cette opération avec le code suivant :
-- Cloning the student_details table with where clause
create table students_data_backup as select * from student_details WHERE stu_id <= 5;
L’exemple de code donné produira la sortie suivante :
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
Comme on peut le voir, une copie de la table student_details
a été créée mais uniquement avec les cinq premiers stu_id
.
En utilisant cette technique, nous pouvons cloner des données partielles à partir d’une table particulière en fonction de nos besoins. À l’aide des deux méthodes ci-dessus, nous pouvons facilement créer une copie de la table source.