Problema con Stored Procedure

Iniciado por Andrespal, 16 Febrero 2015, 04:28 AM

0 Miembros y 1 Visitante están viendo este tema.

Andrespal

Hola amigos, sigo con problemas para implementar un Stored Procedure que me permita realizar la actualización de varios campos de una tabala de mi base de datos.

Específicamente lo que intento hacer es que si a la tabla crb_reservacion ingresa una reserva de un usuario con el campo "numero_vaucher" vació, y el mismo permanece 48 horas vació, automáticamente el codigo_estatus_reserva (que es el estatus de la reserva el cual entra en '2'= "sin vaucher"), sea actualizado a 4 = "cancelada", del mismo modo es necesario que en la misma tabla se actualicen también dos campos que son la fecha_inicio = 0000-00-00 y la fecha_fin = 0000-00-00. Por supuesto cuando el usuario realiza la reserva y esta se almacena en la base de datos, también se almacena la hora_reserva en un campo tipo TIME.

Agradezco su ayuda, he leído mucho sobre los SP, no soy muy experimentando en los mismos puesto a que estoy empezando a trabajar con ellos, gracias de antemano.

Acá coloco la sintaxis que estoy utilizando y abajo de ella el error:


DELIMITER$$
DROP PROCEDURE IF EXISTS tumba_reserva$$

CREATE PROCEDURE tumba_reserva ()

BEGIN

DECLARE hora_reserva TIME;
DECLARE hora_actual TIME;
DECLARE fecha_inicio DATE;
DECLARE fecha_fin DATE;
DECLARE codigo_estatus_reserva INTEGER(1);

SET hora_actual = CURTIME();

SELECT ( if ( numero_vaucher = '' OR numero_vaucher is Null, 0 )And codigo_estatus_reserva = '2'), hora_reserva
FROM crb_reservacion

IF (codigo_estatus_reserva = '2') AND (hora_actual - hora_reserva >= 48) THEN
UPDATE crb_reservacion SET codigo_estatus_reserva = 4, fecha_inicio = '0000-00-00', fecha_fin = '0000-00-00';
END IF;
END $$
DELIMITER$$



Aquí el error que me arroja el MyAdmin:

Error
consulta SQL:


DROP PROCEDURE IF EXISTS tumba_reserva

CREATE PROCEDURE tumba_reserva ()

BEGIN

DECLARE hora_reserva TIME;
MySQL ha dicho: Documentación

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE PROCEDURE tumba_reserva ()

BEGIN

DECLARE hora_res' at line 3