
07/05/2008, 12:12
|
| | Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años, 10 meses Puntos: 0 | |
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?? |