On Mon, 25 Oct 2010 10:45:46 +0200, Matteo Mattsteel Vitturi <mattst...@hotmail.it> wrote:
> L'alternativa potrebbe essere quella di disabilitare per un momento il > vincolo di foreign-key, effettuare i due update (come dici tu nel tuo > pezzetto di codice) ed infine riattivare la foreign-key... e qui potresti > non riuscirci... perché è successo qualcosa nel frattempo. Creare la fkey non è gratis: il database deve fare un full scan della tabella per verificare che tutti i record verifichino la condizione, altrimenti si rifiuta di creare il vincolo. In più droppare/creare la fkey richiede lock che possono essere ostacolati da altre query concorrenti. La soluzione di Giovanni è quella giusta. > Per inciso, con SQLite non avresti il problema in quanto le foreign-key > sono sì dichiarabili ma non vengono imposte (enforced) al database. Se l'ha dichiarata, si vede la voleva. Se un database non la implementa, questa non è una feature :) La tua è una frase buffa: è come dire che il database FooDB(tm) ha l'implementazione dei trigger più veloce che ci sia in giro e nessuno può batterlo (n.b. FooDB(tm) accetta la sintassi del comando CREATE TRIGGER ma non li implementa). -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python