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!
database mysql phpmyadmin
Commentami!