Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/05/2008, 12:12
mmb000
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Información help! Store Procedures con DATEDIFF

Tengo un problema para crear un store procedure en Mysql 5.0

tengo una tabla llamada eventos con 5 tuplas, la fecha actual es 2008/05/07

---------|----------------|---------|
eid | event_date | active |
---------|----------------|---------|
1 |2008/05/01 | 1 |
---------|----------------|---------|
2 |2008/05/02 | 1 |
---------|----------------|---------|
3 |2008/05/03 | 1 |
---------|----------------|---------|
4 |2008/05/20 | 1 |
---------|----------------|---------|
5 |2008/05/21 | 1 |
---------|----------------|---------|

Lo que necesito es crear un store procedure que usando datediff, recorra TODOS los
valores de la tabla automaticamente y actualize la columna "active", con 0 para eventos pasados y mantenga el "1" si aun es un evento futuro.

Tengo el siguiente codigo que efectua la operacion pero enviando por parametro el id de la tupla:

DELIMITER $$

DROP PROCEDURE IF EXISTS event_update $$
CREATE PROCEDURE event_update (id int )
BEGIN

IF (id = 0) THEN
SET id = null;
END IF;

IF (id IS NOT NULL) AND ((SELECT DATEDIFF(curdate(),event_date) FROM eventos WHERE active='1' AND eid='id')<0)
THEN
UPDATE eventos SET active=0 WHERE eid='id';

END IF;
END $$

DELIMITER ;

Luego desde una hoja php, llamo el SP:
$myspcall = mysqli_query($dbc, "CALL event_update($id)");

esto me obliga ha primero efectuar una consulta, usar mysql_fetch_array() y pasar cada id por parametro.

Lo que necesito es hacer q la BD efectue el store procedure sin necesidad del parametro, es decir recorra toda la tabla y actualiza los valores comparando la fecha en la BD con la fecha actual.

Alguien puede ayudarme porfavor??