Home / Database & Server / Database & Server / Duplicare tabella in MySQL
Mattepuffo

Duplicare tabella in MySQL

Duplicare tabella in MySQL

Può capitare di dover fare una copia dei dati in un'altra tabella, anche per una semplice copia o debug.

Per fare questo abbiamo due opzioni, a seconda anche delle nostre esigenze.

Una prima soluzione consiste nel copiare la struttura della tabella tramite phpmyadmin, che ci assicura anche la copia di indici e relazioni.

In questo caso poi dovremmo fare una cosa del genere nel nostro programma:

SET foreign_key_checks = 0;
TRUNCATE tbl_copy;
INSERT tbl_copy SELECT * FROM tbl;
SET foreign_key_checks = 1;

Con la prima istruzione annulliamo il controllo di eventuali relazioni (in questo caso va bene in quanto la tabella è solo una copia dei dati, e non ci interessano eventuali scombinamenti di dati).

Una seconda modalità è invece quella di eseguire anche la creazione della tabella da programma; questa modalità però non si porta dietro indici e relazioni:

DROP TABLE tbl_copy;
CREATE TABLE tbl_copy LIKE tbl;
INSERT tbl_copy SELECT * FROM tbl;

Sostanzialmente ogni volta cancelliamo la tabella, la ricreiamo e inseriamo i dati.

Quale soluzione fa per voi dipende dalle esigenze, ma io opto sempre per la prima.

Ciao!