MySQL - bloqueo en insert de mysql

   
Vista:

bloqueo en insert de mysql

Publicado por silvia (2 intervenciones) el 10/06/2008 08:58:30
Por favor si alguién experto puede ayudarme
Estoy haciendo un programa de reservaciones y cuando el cliente reserva un cuarto necesito que la tabla de reservaciones de alguna manera quede bloqueada para que otro usuario no reserve el mismo cuarto en las mismas o dentro de las fechas del primer usuario ya que he puede suceder que dos clientes reserven dentro de las mismas fechas el mismo cuarto y den click en reservar al mismo tiempo
Utilice el lock tables pero por ejemplo si un usuario1 reserva para los dias 10 y 11
y usuario dos para los dias 9 , 10 y 11 en la tabla queda algo asi

clente fecha_reservada
usuario1 10
usuario2 11
usuario2 09

Agradezco si alguien puede ayudarme
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:bloqueo en insert de mysql

Publicado por ery (69 intervenciones) el 10/06/2008 11:54:03
Revisas con que motor estas trabajando con MyISAM o InnoDB

En MyISAM lo haces con Lock Table y con InnoDB con select xxxxx for update para bloquear un registro no una tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:bloqueo en insert de mysql

Publicado por Emerson Palacios (29 intervenciones) el 15/06/2008 16:39:50
No le veo la necesidad de bloquear la tabla, lo que deber hacer es validar que el usuario no pueda reservar en una fecha que ya ha sido reservada. mejor un ejemplo:
Cuarto Nº01 reservado por cliente numero1 los dias 12/07/08,13/07/08, 14/07/08 hasta ahi todo bien. viene cliente numero2 y quiere reservar cuarto Nº1 el dia 13/07/08 al momento de el querer hacer la reserva debes hacer una busqueda en las reservaciones sobre ese cuarto y buscar la fecha o fechas relacionadas y dependiendo de eso aceptar o no la reserva. tienes que implementar una tabla reserva en la cual habra un codigo de reserva, el numero de habitacion, y el dia o los dias que reserve el cliente. bueno eso es lo que se me ocurrio. a ver si con eso puedes avanzar algo. si tienes alguna duda no dudes en preguntar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar