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

select... for update

Estas en el tema de select... for update en el foro de Mysql en Foros del Web. hola, ojala me puedan ayudar con la siguiente consulta. tengo el siguiente codigo dentro de un stored procedure. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original select ...
  #1 (permalink)  
Antiguo 21/07/2011, 16:25
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
select... for update

hola, ojala me puedan ayudar con la siguiente consulta.

tengo el siguiente codigo dentro de un stored procedure.

Código MySQL:
Ver original
  1. from tabla
  2. for update;
  3.  
  4. when param='0' then
  5. insert into tabla...
  6. when param='1' then
  7. update tabla set...

el stored procedure lo utilizo para realizar un insert o update (pero no ambos a la vez).

mi problema es:
si hace el insert me devuelve el select.. for update que se hizo al inicio.
si hace el update no devuelve nada.

hay alguna forma de hacer de que siempre devuelva algo o nunca devuelva nada? gracias.
  #2 (permalink)  
Antiguo 21/07/2011, 16:44
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
Respuesta: select... for update

disculpen, ahora que reviso bien, siempre me devuelve el select... for update.
existira una forma para que no lo devuelva? gracias
  #3 (permalink)  
Antiguo 21/07/2011, 20:07
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, 4 meses
Puntos: 2658
Respuesta: select... for update

El SELECT ... FOR UPDATE tiene sentido si vas a bloquear la tabla para hacer un UPDATE. En lugar de hacerlo así bien puedes usar tablas InnoDB y utilizar transacciones.
O bien usar LOCK TABLES para bloquearla y luego la liberas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 21/07/2011, 22:07
 
Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años
Puntos: 2
Respuesta: select... for update

gracias por tu respuesta gnzsoloyo pero... creo que no es posible utilizar lock tables en un stored procedure, no?

es correcto como estoy utilizando el select... for update?
principalmente lo hago para definir un numero secuencial guardando una variable en el select max(id)+1, pero para eso antes bloqueo la tabla usando select... for update.

lo unico que no me gusta es que el sp retorna el select... for update que se hace al inicio.

me gusto mucho la solucion que me diste, en una pregunta anterior, utilizando un trigger para establecer un secuencial sin utilizar auto_increment. pero queria saber si de esta forma tambien podia funcionar.

Etiquetas: select, tabla, update
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 23:06.