From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Miguel Angel <mvillagomez(at)sayab(dot)com(dot)mx> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Debo usar Transacciones? |
Date: | 2006-04-19 22:07:11 |
Message-ID: | 20060419220710.GA28629@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Miguel Angel escribió:
> Alvaro gracias por los ánimos jejeje. Solo una duda más no conozco LOCK
> TABLE voy a buscarla, pero esta se usa en funciones o en un query normal?,
> podrías darme un muy pequeño ejemplo, por favor.
BEGIN
LOCK TABLE tabla_de_algo;
SELECT max(id_de_algo) + 1 FROM tabla_de_algo;
insert ... VALUES (el_valor_que_obtuviste, ...)
COMMIT
Observa que aqui el bloque de transaccion no es opcional. Si lo omites,
el LOCK TABLE no tiene ningun efecto, puesto que todos los locks se
liberan cuando la transaccion termina.
Otra cosa a observar es que en Postgres siempre hay una transaccion; si
no la abres y cierras explicitamente, entonces se abrira y cerrara para
cada comando que envies. Por ejemplo aca hay una transaccion que
inserta en dos tablas:
BEGIN
insert into tabla_uno values (...)
insert into tabla_dos values (...)
COMMIT
En cambio aca hay dos transacciones que insertan cada una en una tabla:
insert into tabla_uno values (...)
insert into tabla_dos values (...)
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2006-04-20 04:54:28 | Re: Problema con IF NOT FOUND en función plpgsql |
Previous Message | Miguel Angel | 2006-04-19 21:38:58 | RE: Debo usar Transacciones? |