Duplicare tabella in MySQL

Mattepuffo's logo
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!


Condividi

Commentami!