Re: Bloqueo de tablas

From: "Juan Manuel Fernandez" <jmfernandez(at)unlu(dot)edu(dot)ar>
To: "Lista - PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Bloqueo de tablas
Date: 2008-08-07 16:47:18
Message-ID: 27f3c8cd0808070947s765a1d0ck5c7edbf45a2fce19@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2008/8/7 Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>:
> Juan Manuel Fernandez escribió:
>> Hace un tiempo en esta lista se propuso como una buena opción para
>> mantener correlativos en una tabla, el bloqueo de la misma, y el
>> incremento del máximo valor de esa tabla para insertar.
>> Ahora bien, pregunta técnica: Como bloqueo la tabla para luego
>> insertar el valor? Porque he visto que hay varios modos y que algunos
>> tienen sus desventajas...
>
> LOCK TABLE.

Palabra clave: muy útil para cuando estas tan desorientado
tecnicamente como estaba yo.

Gracias a todos, tema resuelto e implementado... tiro dos ejemplos de
su uso y el enlace salvador:

http://es.tldp.org/Postgresql-es/web/navegable/user/user.html

Illustrate a SHARE lock on a primary key table when going to perform
inserts into a foreign key table:

BEGIN WORK;
LOCK TABLE películas IN SHARE MODE;
SELECT id FROM películas
WHERE name = 'Star Wars: Episodio I - La amenaza fantasma';
-- Haz ROLLBACK si el registro no fue devuelto
INSERT INTO comentarios_usuario_películas VALUES
(_id_, 'GUAY! Llevaba tanto tiempo esperándola!');
COMMIT WORK;

Toma un bloqueo SHARE ROW EXCLUSIVE clave de tabla primaria cuando
vayas a hacer una operación de borrado:

BEGIN WORK;
LOCK TABLE películas IN SHARE ROW EXCLUSIVE MODE;
DELETE FROM comentarios_usuario_películas WHERE id IN
(SELECT id FROM películas WHERE clasificación < 5);
DELETE FROM películas WHERE clasificación < 5;
COMMIT WORK;

Saludos,

> --
> Alvaro Herrera Valdivia, Chile Geotag: -39,815 -73,257
> "El hombre nunca sabe de lo que es capaz hasta que lo intenta" (C. Dickens)
> --
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo
>

Juan

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-08-07 17:13:36 Re: Bloqueo de tablas
Previous Message Jaime Casanova 2008-08-07 16:01:59 Re: Obtener las ultimas versiones de un conjunto de registros