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

como recorrer la tabla en un trigger o sp? for each row?

Estas en el tema de como recorrer la tabla en un trigger o sp? for each row? en el foro de Mysql en Foros del Web. hola, tengo que crear un trigger que me compruebe unos datos en una tabla, mi duda es como puedo recorrer esa tabla??? es con un ...
  #1 (permalink)  
Antiguo 10/09/2009, 05:51
 
Fecha de Ingreso: abril-2009
Mensajes: 41
Antigüedad: 15 años
Puntos: 0
Pregunta como recorrer la tabla en un trigger o sp? for each row?

hola,

tengo que crear un trigger que me compruebe unos datos en una tabla, mi duda es como puedo recorrer esa tabla???

es con un FOR EACH ROW??? que es lo que hace exactamente FOR EACH ROW?

por si no me he explicado bien, un ejemplo:
tengo una tabla con unos numeros (2,2,3,4,3,2,3,4,5,5,8) y quiero comprobar si el número 9 existe en esa tabla. como se haría?con un loop?con un while??

Gracias.
  #2 (permalink)  
Antiguo 10/09/2009, 06:59
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: como recorrer la tabla en un trigger o sp? for each row?

Cita:
que es lo que hace exactamente FOR EACH ROW?
Cita:
Las sentencia siguiente, FOR EACH ROW, define lo que se ejecutará cada vez que el disparador se active, lo cual ocurre una vez por cada fila afectada por la sentencia activadora. En el ejemplo, la sentencia activada es un sencillo SET que acumula los valores insertados en la columna amount. La sentencia se refiere a la columna como NEW.amount, lo que significa “el valor de la columna amount que será insertado en el nuevo registro.”
tomado de: http://dev.mysql.com/doc/refman/5.0/...-triggers.html

Almirante nos habías comentado que esto es un trabajo puesto por tu profesor.
Te agradecería compartieras las tareas que te han puesto, ejecutando operaciones y comparacions desde un trigger y no desde una función.

Lo que dices, se hace fácilmente desde una función, pero no creo (O no tengo idea de como hacerlo) que se pueda hacer desde un trigger.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 10/09/2009, 07:37
 
Fecha de Ingreso: abril-2009
Mensajes: 41
Antigüedad: 15 años
Puntos: 0
Respuesta: como recorrer la tabla en un trigger o sp? for each row?

hola,
gracias huesos52, ya lo leí del mysql.com, pero no lo entendí, pregunto aquí para una explicación más sencilla.

no es de donde lo quiro hacer, sino el como hacerlo. En pseudo código sería algo así:

mientras existan_filas entonces
comprobar XXX;
fin mientras; (recorriendo así todas las filas).


el ejercicio en si es, teniendo una tabla con unos rangos de edades, pues que al insertar, de error si se solapan las edades.
ya he averiguado como simular un error (es lanza un error pero valdrá), y ya tengo el código escrito, pero me falla:

Cita:
delimiter &&
CREATE TRIGGER rango before INSERT ON Nivel
FOR each ROW
BEGIN

if (new.Min_anos>=Min_anos and new.Min_anos<Max_anos )
OR ( new.Max_anos>Min_anos and new.Max_anos<=Max_anos )
OR ( new.Max_anos>Max.anos and new.Min_anos<Max.anos )
then
call error_rango('violacion de rangos');
end if;

END ;
Gracias
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 06:32.