Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/01/2010, 13:25
jc3000
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 17 años, 6 meses
Puntos: 43
Respuesta: Concepto de tablas estáticas

Cita:
Iniciado por Smolky Ver Mensaje
Gracias por la respuesta. Estoy viendo la documentación aqui:
http://ora.u440.com/dml/lock%20table.html

y he probado el siguiente ejemeplo:

Código:
INSERT INTO tipoEstadoPedido VALUES ('Prueba 1');

LOCK TABLE 
   TipoValoracion, tipoEstadoPedido IN EXCLUSIVE MODE;

INSERT INTO tipoEstadoPedido VALUES ('Prueba 2');

SELECT * FROM tipoEstadoPedido ;
Pero realizar la inserción de Prueba_2 y además me deja consultarlo. ¿Es así como se usa, o estoy perdiendome algo?


Estoy usando la versión de ORACLE Lite (creo que se llama, es una versión reducida)


Gracias de nuevo
Es así, pero no tienes el concepto del todo claro. Al hacer el LOCK TABLE IN EXCLUSIVE MODE, bloqueas todas las operaciones sobre esa tabla a todo el mundo EXCEPTO A TI. Durante ese bloqueo tu puedes hacer lo que te de la gana sobre esa tabla en ESA MISMA SESION.

En el momento en que hagas COMMIT, ROLLBACK o cierres esa sesion, el bloqueo desaparece.

Si se sabe utilizar es muy util, pero si lo usas mal puedes tener muchos problemas.

Cita:
Iniciado por huesos52 Ver Mensaje
Corrijanme si estoy mal, pero creo que el bloqueo entra a jugar su papel en el momento en que se ejecute cierta transacción.
Es decir, al momento de ejecutar un store procedure que actualice una serie de registros y este mismo tarde 30 segundos (Por ejemplo) la tabla estará bloqueada para evitar borrados, actualizaciones, inserciones o cualquier operación DML.

Por lo menos eso pasa en postgresql y la sintaxis es casi igual.

saludos
El bloqueo del que hablas creo que se produce a nivel de registro, es decir que si actualizas 30 registros, se bloquean esos 30 registros, con lo que los deletes o updates que afectan a otros registros no se ven bloqueados. Obviamente los inserts se hacen sin problemas..