2008/8/7 Alvaro Herrera <[EMAIL PROTECTED]>:
> 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
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán

Responder a