Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error en el update - tabla innodb

Estas en el tema de Error en el update - tabla innodb en el foro de Mysql en Foros del Web. Hola a todos. Tengo una consulta, a ver si alguien nos puede ayudar. Cree todas las tablas innodb, para poder realizar updates sobre un mismo ...
  #1 (permalink)  
Antiguo 13/01/2009, 03:01
 
Fecha de Ingreso: diciembre-2008
Mensajes: 129
Antigüedad: 15 años, 4 meses
Puntos: 1
Error en el update - tabla innodb

Hola a todos.

Tengo una consulta, a ver si alguien nos puede ayudar.

Cree todas las tablas innodb, para poder realizar updates sobre un mismo registro a la vez (el primer proceso se espera al segundo).

Pero no funciona. A veces, cuando dos procesos intentan modificar el mismo registro a la vez (o en un espacio de tiempo reducido de diferencia, como por ejemplo dos updates consecutivos), el segundo update no se realiza.

Como puedo solucionarlo ? Que las tablas fueran innodb no solucionaba este problema ?

Muchas gracias a todos.
  #2 (permalink)  
Antiguo 13/01/2009, 16:00
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Error en el update - tabla innodb

Lo que pasa que cuando realizas un update, se bloquea la fila hasta terminar el proceso.

Lo que puedes hacer es mediante programación preguntar si termino el primer update, para pasar al segundo. Si no haces eso, el segundo update no se ejecutara por que encontrara la fila blouqeada.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 14/01/2009, 02:36
 
Fecha de Ingreso: diciembre-2008
Mensajes: 129
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error en el update - tabla innodb

Muchas gracias Genetix.

Y como puedo preguntarlo ? Como pregunto si ha acabado o el registro esta bloqueado ?
  #4 (permalink)  
Antiguo 14/01/2009, 04:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error en el update - tabla innodb

Eso es problema de programación. debes preguntar en los foros correctos. Como no lo puedes resolver por la base de datos, debes ir al foro del lenguaje en qué estés programando (ASP, .NET, PHP, Java, etc.).
Las reglas de este foro (Función de la sección de Base de Datos) indican que solamente se trate aquí lo que sea SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 14/01/2009, 05:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 129
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error en el update - tabla innodb

OK.

Lo preguntaré en el foro de PHP.

Muchas gracias.
  #6 (permalink)  
Antiguo 15/01/2009, 12:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 129
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error en el update - tabla innodb

En php ya me han explicado un truquillo,

pero agradecería mucho si alguien conoce alguna sentencia sql que haga que el registro quede bloqueado y haga que los procesos posteriores esperen hasta que el primero termine.

Alguien sabe como hacerlo por favor ? se puede hacer ?

Muchas gracias
  #7 (permalink)  
Antiguo 15/01/2009, 12:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error en el update - tabla innodb

El problema es que si estuvieras haciendo las sentencias seguidas en la misma consola de SQL, estas si se esperan, es decir, SELECT * FROM x; UPDATE y SET x; UPDATE a SET b; DELETE FROM x;

Pero al tu hacerlas por separado en diferentes procesos en PHP, es donde encuentras el problema. Por eso es ahi donde debes de resolver el problema, ya que al no enviar las sentencias de forma recurrente si no por separado tienes que controlarlo en la logica de tu aplicacion.

Saludos.
  #8 (permalink)  
Antiguo 15/01/2009, 12:58
 
Fecha de Ingreso: diciembre-2008
Mensajes: 129
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Error en el update - tabla innodb

Perfecto, entendido.

Muchas gracias GatorV.

Pero déjame realizarte un par de consultas, por favor :

- Entonces, porque si pongo dos updates seguidos en el mismo proceso php el segundo no se realiza ? el segundo no se espera ...

- Estoy reciclado del DB2, y en DB2 existe la sentencia "with hold" que realiza lo que necesito. Por lo que has dicho, esta instrucción no existe en mysql.

Muchas gracias a todos.

Saludos !!!!
  #9 (permalink)  
Antiguo 15/01/2009, 14:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Error en el update - tabla innodb

Porque tu llamas a mysql_query(consulta), cosas, mysql_query(). En ese caso si te fijas, el proceso ya no es el mismo si quieres realizar las dos tendrias que enviarlas en el mismo, la funcion mysqli_multi_query te permite hacerlo.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:17.