[linux_var] problema query sql

Fernando Vezzosi fvezzosi a masobit.net
Mer 7 Mar 2007 19:48:00 UTC


Ciao Rev :)

On Wed, Mar 07, 2007 at 07:42:35PM +0100, fdg a controcultura.net wrote:
> > update mytab set id=1 where nome='fausto';
> 
> e poi il problema e' che sono chiavi primarie, se cambio
> semplicemente prima la prima e poi la seconda rischio di
> avere per un istante le due chiavi uguali e cio' per
> definizione di chiave non e' raccomandabile (nel senso che
> non funziona:P).

Idea: usare le transazioni?

http://dev.mysql.com/doc/refman/5.0/en/commit.html

 START TRANSACTION;

 SELECT @TMP:=SELECT id FROM mytab WHERE nome='fausto';

 UPDATE mytab SET id=(SELECT id FROM mytab WHERE nome='carlo') WHERE
 nome='fausto';

 UPDATE mytab SET id=@TMP WHERE nome='carlo';

 COMMIT;

-- 
  Fernando Vezzosi
	       3F29 4D20 510E E1AE 991D  3B12 D6BE 7C05 B289 97C9
-------------- parte successiva --------------
Un allegato non testuale  stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: Digital signature
URL:         <http://ml.linuxvar.it/pipermail/talking/attachments/20070307/e1da2852/attachment.pgp>


More information about the Talking mailing list