Copier une table dans MySQL

Preet Sanghavi 30 janvier 2023
  1. Cloner une table à l’aide de l’instruction CREATE TABLE ... AS SELECT
  2. Cloner une table avec des données partielles à l’aide de la clause WHERE
Copier une table dans MySQL

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.

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