R: [Db] mysql spostare record tra due tabelle
Matteo Indorato
indorato a emme-i.org
Gio 14 Giu 2007 01:17:12 CEST
Ciao piuttosto che una delete from where in (...)
ti conviene mettere in join le due tabelle e fare la delete
Dovresti avere prestazioni migliori, indici permettendo.
Matteo
Alle 19:31, mercoledì 13 giugno 2007, giuseppe a arsnet.it ha scritto:
> Cristiano Verondini wrote:
> >Purtroppo, AFAIK, questo è l'unico metodo. Aggiungerei un LOCK delle
> >tabelle prima delle operazioni per evitare che mentre stai facendo la
> > copia vengano inseriti altri record. Se non ci sono errori, la procedura
> > non ha problemi. Se ci sono errori sarebbe meglio avere un motore DB col
> > rollback.
>
> Ho trovato una mezza soluzione:
>
> “INSERT INTO storico_ordini (ordine_id,data,id_anacf,numero)
> SELECT ordine_id,data,id_anacf,numero
> FROM ordini”
> "delete from ordini where ordine_id in (select ordine_id from storico
> _ordini) "
>
>
> continuo ad eseguire due query separate ma non mi devo preoccupare se un
> record non viene inserito nella tabella dello storico.
>
> Per quel che riguarda il lock non è necessario in quanto la procedura viene
> lanciata dall'amministratore di sistema quando tutti gli utenti sono
> scollegati.
>
>
>
>
> _____
>
> avast! Antivirus <http://www.avast.com> : In partenza messaggio pulito.
>
>
> Virus Database (VPS): 000748-5, 13/06/2007
> Controllato il: 13/06/2007 19.31.41
> avast! - copyright (c) 1988-2007 ALWIL Software.
>
>
>
> _______________________________________________
> Db mailing list
> Db a lists.ziobudda.net
> http://lists.ziobudda.net/mailman/listinfo/db
--
Non dico tutto quel che penso...
... Ma tutto quel che dico lo penso ...
--
Maggiori informazioni sulla lista
Db