Duplicare i record di una tabella SQL
Può essere utile a volte duplicare il contenuto di una riga di una tabella, integralmente o modificando i dati di alcuni campi.
Se vogliamo copiare integralmente tutti i dati presenti nel record dovremo scrivere:
INSERT INTO tabella SELECT * FROM tabella WHERE id_tabella = 'x';
Il problema facendo così è che verrà duplicata anche la chiave primaria, se presente, e avremo un errore. Per ovviare a questo problema è sufficiente indicare quali campi vogliamo duplicare:
INSERT INTO tabella (campo_1, campo_2) SELECT campo_1, campo_2 FROM tabella WHERE id_tabella = 'x';
Se invece vogliamo duplicare alcuni campi e cambiarne altri, ad esempio mettere un nuovo valore al posto del "campo_1" basterà scrivere:
INSERT INTO tabella (campo_1, campo_2) SELECT 'Nuovo valore', campo_2 FROM tabella WHERE id_tabella = 'x';
Tutti i record che soddisfano la clausola WHERE vengono duplicati.





Commenti
Non ci sono commenti