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