Corsi on-line

Clonazione di record in MySQL

Analizziamo questa semplice query:

INSERT INTO tabella SELECT * FROM tabella

Essa permette di duplicare tutti i record contenuti all’interno di una tabella e di memorizzarli, nuovamente, all’interno di essa, il tutto funziona sulla base di un INSERT basato sul risultato di un’interrogazione; ora, difficilmente però avremo l’esigenza di clonare interamente una tabella, molto più probabilmente saremo interessati a copiare soltanto alcuni record, per cui potremo essere più selettivi utilizzando la clausola WHERE:

INSERT INTO tabella SELECT * FROM tabella WHERE campo='valore'

Nel caso di tabelle indicizzate potremmo però avere dei problemi al momento dell’INSERT, dato che MySQL non consente la duplicazione degli indici univoci, in questo caso dovremo specificare i campi che dovranno essere coinvolti dalla query:

INSERT INTO tabella (campA, campoB, ..) SELECT campA, campoB, .. FROM tabella

Le operazioni di clonazione potranno essere associate in alcini casi ad operazioni di alterazione dei valori, in questo modo non sarà necessario intervenire successivamente per effettuare modifiche:

INSERT INTO tabella (campA, campoB, ..) SELECT (campA+3), campoB, .. FROM tabella
Post correlati
I più letti del mese
Tematiche