martedì, ottobre 12, 2010

Duplicare riga con chiave primaria con mysql

Considerato che oggi volevo fare questa operazione
e non sono riuscito a trovare un sistema navigando
mi sono dovuto spremere le meningi...

L'obbiettivo era questo:
volevo duplicare una riga presente in una tabella di mysql assegnando una nuova chiave primaria e volevo (per pigrizia) fare tutto in una volta con meno comandi possibili e senza dover riscrivere tutte le colonne della tabella..

ecco il codice:


create temporary table temp_prodotti
as
select * from prodotti2 WHERE codice='7';

-- CREO UNA TABELLA TEMPORANEA A PARTIRE DALLA TABELLA PRODOTTI
-- NELLA NUOVA TABELLA TABELLA TEMPORANEA VIENE COPIATA LA RIGA CON CODICE 7
-- CODICE E' LA CHIAVE PRIMARIA

update temp_prodotti set codice='7b' where codice='7';

-- CAMBIO IL CODICE DA '7' A '7b'

insert into prodotti2 select * from temp_prodotti;

-- RICOPIO LA NUOVA RIGA (CON IL NUOVO CODICE)
-- NELLA TABELLA DA CUI PROVIENTE

drop temporary table temp_prodotti;

-- ELIMINO LA TABELLA TEMPORANEA

Nessun commento:

Non mi ricordavo di avere un blog..

Erano anni che non scrivevo in questo blog... Non che qualcuno lo legga.. e così dal nulla ho deciso di metterci un tema nuovo.. Comunque...