Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2004, 09:32
aeb_asturias
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 2 meses
Puntos: 7
Sonrisa error al realizar una consulta a una base de datos cuando bloqueo una tabla

Hola a todos. Mi duda es la siguiente:

Tengo un programa en java donde entre otras cosas bloqueo una tabla de una base de datos mediante una consulta sql. El problema lo tengo en que cuando intento realizar una consulta a otra tabla de mi base de datos que no es la que bloquee entonces me da el siguiente error:

java.sql.sqlException:General error, message from server: Table 'experimentos'
was not locked with lock tables

siendo 'experimentos' la tabla sobre la que estoy haciendo una consulta y no es la tabla que habia bloqueado antes.

Para que se entienda pongo a continuacion el trozo de codigo involucrado:

//con esto consigo bloquear la tabla servidores de mi base de datos para que no se pueda leer ni escribir
Statement consulta=conexion.createStatement();
consulta.executeUpdate("LOCK TABLES servidores WRITE");
//intento realizar una consulta sobre la tabla experimentos
consulta=conexion.createStatement();
ResultSet results=consulta.executeQuery("select * from experimentos");

Es esta ultima consulta donde me da el error. Lo curioso es que si desbloqueo la tabla 'servidores' antes de realizar mi consulta sobre la tabla experimentos funciona perfectamente.

¿pero porque me da problema si bloqueo una tabla y yo luego quiero consultar otra que no esta bloqueada?

He comprobado que si utilizo dos objetos Connection distintos con los que me conecto a la base de datos para cada una de las consultas, entonces no me da problemas.

Un saludo.