Question Dupliquer une table MySQL, des index et des données


Comment copier / cloner / dupliquer les données, la structure et les index d’une table MySQL dans une nouvelle?

C'est ce que j'ai trouvé jusqu'ici.

Cela copiera les données et la structure, mais pas les index:

create table {new_table} select * from {old_table};

Cela copiera la structure et les index, mais pas les données:

create table {new_table} like {old_table};

483
2017-07-19 09:53


origine


Réponses:


Pour copier avec des index et des triggers, faites ces 2 requêtes:

CREATE TABLE newtable LIKE oldtable; 
INSERT newtable SELECT * FROM oldtable;

Pour copier seulement la structure et les données utilisez celui-ci:

CREATE TABLE tbl_new AS SELECT * FROM tbl_old;

J'ai demandé ceci avant:

Copiez une table MySQL incluant des index


1088
2017-07-19 09:59



En dehors de la solution ci-dessus, vous pouvez utiliser AS pour le faire en une seule ligne.

CREATE TABLE tbl_new AS SELECT * FROM tbl_old;

38
2018-04-22 12:08



Aller à phpMyAdmin et sélectionnez votre tableau d'origine puis sélectionnez "Opérations"onglet dans le 'Copier la table dans (database.table)'zone sélectionnez la base de données où vous souhaitez copier et ajouter un nom pour votre nouvelle table.

copy table - phyMyAdmin Screenshot


4
2017-10-20 08:13



MySQL Way

CREATE TABLE recipes_new LIKE production.recipes; INSERT recipes_new SELECT * FROM production.recipes;

2
2017-12-20 20:12



J'ai trouvé la même situation et l'approche que j'ai prise était la suivante:  1. Exécuter SHOW CREATE TABLE: cela vous donnera la syntaxe Create Table pour la table que vous voulez cloner  2. Exécutez la requête CREATE TABLE en modifiant le nom de la table pour cloner la table.

Cela va créer une réplique exacte de la table que vous souhaitez cloner avec des index. La seule chose dont vous avez besoin est de renommer les index (si nécessaire).


1
2018-05-05 12:24



Après avoir essayé la solution ci-dessus. Je viens avec mon propre chemin.

Ma solution est un peu manuelle et nécessite un SGBD.

Commencez par exporter les données.

ouvrez ensuite les données d'exportation.

troisième remplacer l'ancien nom de la table par le nouveau nom de la table.

quatrième changement tout le nom du déclencheur dans les données (j'utilise mysql et il affiche une erreur lorsque je ne change pas le nom du déclencheur)

cinquième importez vos données SQL modifiées dans la base de données.


1
2018-05-25 18:08



POUR MySQL

CREATE TABLE newtable LIKE oldtable ; 
INSERT newtable SELECT * FROM oldtable ;

POUR MSSQL Utilisation MyDatabase:

Select * into newCustomersTable  from oldCustomersTable;

Ce SQL est utilisé pour copier des tables, ici le contenu de oldCustomersTable sera copié dans newCustomersTable.
Assurez-vous que le newCustomersTable  ne fait pas exister dans la base de données.


-3
2018-03-06 20:11