Maison  >  Article  >  base de données  >  Comment créer une table de clonage MySQL ?

Comment créer une table de clonage MySQL ?

WBOY
WBOYavant
2023-09-15 10:49:021357parcourir

我们如何制作 MySQL 克隆表?

Parfois, il peut y avoir une situation où nous avons besoin d'une copie exacte d'une table et CREATE TABLE ... SELECT ne convient pas à nos besoins car la copie doit contenir les mêmes index, valeurs par défaut, etc.

Vous pouvez suivre les étapes ci-dessous pour gérer cette situation et créer un clone de la table comme indiqué ci-dessous -

  • Utilisez SHOW CREATE TABLE pour obtenir l'instruction CREATE TABLE, qui spécifie la structure, les index, etc. de la table source .
  • Modifiez l'instruction, remplacez le nom de la table par le nom de la table clonée, puis exécutez l'instruction. De cette façon, nous obtiendrons une table de clonage exacte.
  • Alternativement, si nous devons également copier le contenu de la table, nous pouvons également émettre une instruction INSERT INTO ... SELECT.

Exemple

Dans l'exemple suivant, nous allons créer une table de clonage pour tutoriels_tbl.

Étape 1

Obtenez la structure complète du tableau.

mysql> SHOW CREATE TABLE tutorials_tbl \G;

*************************** 1. row ***************************
Table: tutorials_tbl
Create Table: CREATE TABLE `tutorials_tbl` (
   `tutorial_id` int(11) NOT NULL auto_increment,
   `tutorial_title` varchar(100) NOT NULL default '',
   `tutorial_author` varchar(40) NOT NULL default '',
   `submission_date` date default NULL,
   PRIMARY KEY (`tutorial_id`),
   UNIQUE KEY `AUTHOR_INDEX` (`tutorial_author`)
) TYPE = MyISAM
1 row in set (0.00 sec)
ERROR:
No query specified

Étape 2

Renommez la table et créez une autre table.

mysql> CREATE TABLE clone_tbl (
    -> tutorial_id int(11) NOT NULL auto_increment,
    -> tutorial_title varchar(100) NOT NULL default '',
    -> tutorial_author varchar(40) NOT NULL default '',
    -> submission_date date default NULL,
    -> PRIMARY KEY (tutorial_id),
    -> UNIQUE KEY AUTHOR_INDEX (tutorial_author)
    -> ) TYPE = MyISAM;
Query OK, 0 rows affected (1.80 sec)

Étape 3

Après avoir effectué l'étape 2, vous créerez une table de clonage dans la base de données. Si vous souhaitez copier des données de l'ancienne table, vous pouvez le faire à l'aide de l'instruction INSERT INTO...SELECT.

mysql> INSERT INTO clone_tbl (tutorial_id, tutorial_title, tutorial_author, submission_date)
    -> SELECT tutorial_id,tutorial_title,
    ->    tutorial_author,submission_date
    -> FROM tutorials_tbl;
Query OK, 3 rows affected (0.07 sec)
Records: 3 Duplicates: 0 Warnings: 0

Au final, nous aurons une table de clonage qui correspond exactement à ce que vous voulez.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer