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

[SOLUCIONADO] No comprendo la diferencia

Estas en el tema de No comprendo la diferencia en el foro de Mysql en Foros del Web. Hola a todos. Estoy aprendiendo y documentándome sobre los triggers, pero no logro entender una cosa. Se supone que un trigger es para avisar cuando ...
  #1 (permalink)  
Antiguo 02/09/2017, 08:56
Musiker
Invitado
 
Mensajes: n/a
Puntos:
No comprendo la diferencia

Hola a todos.

Estoy aprendiendo y documentándome sobre los triggers, pero no logro entender una cosa. Se supone que un trigger es para avisar cuando se actualiza una tabla con nuevos registros (o al menos hasta donde yo he aprendido), pero por ejemplo...
Se supone que si yo deseo saber los usuarios nuevos que hay cada minuto en una bd, puedo hacer un select con un cronjob para cada minuto o utilizar un trigger... pero entonces ¿cómo hago para que el trigger me "diga" que hay un nuevo registro si no hago un cron de todas formas? (O en su defecto uso javascript para enviar la consulta cada minuto o algo así). Perdonen mi ignorancia pero no veo la diferencia si hay que hacer la consulta de todas formas mediante otro método o lenguaje.

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 03/09/2017, 09:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 12 años
Puntos: 2653
Respuesta: No comprendo la diferencia

Mira, partamos de una descripción sencilla:
Un TRIGGER es una rutina programada para ejecutarse cuando se produce el evento capaz de dispararlo, y solo hay TRES de ellos: INSERT, UPDATE y DELETE.
La idea de un trigger es crear una tarea programada en la rutina que deba hacerse SIEMPRE que se produzca ESE evento en una tabla dada. Usualmente la tarea tiene que ver con cosas que no requieren interacción de parte de usuarios, sino que son obligatorias y donde los datos que requieren también están en la base sin necesidad de otras interacciones de usuarios posteriores al evento.
¿Se entiende?
Ahora bien, un trigger NO se dispara por un SELECT, por lo que el que haya un alta, baja o modificación de un registro dado no hace que ningún sistema lo refleje si no tienes una rutina diferente capaz de verificarlo.

En ese sentido, estas confundiendo los usos de ambas cosas.

Finalmente, ten en cuenta que lo que hagas con las aplicación (JavaScript, C#, Java, etc) es irrelevante para la base, porque la base de datos no interactúa con el usuario. Lo que haga tu aplicacion dependerá de lo que tu programes en ella.


¿Se va aclarando la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/09/2017, 14:09
Musiker
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No comprendo la diferencia

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Mira, partamos de una descripción sencilla:
Un TRIGGER es una rutina programada para ejecutarse cuando se produce el evento capaz de dispararlo, y solo hay TRES de ellos: INSERT, UPDATE y DELETE.
La idea de un trigger es crear una tarea programada en la rutina que deba hacerse SIEMPRE que se produzca ESE evento en una tabla dada. Usualmente la tarea tiene que ver con cosas que no requieren interacción de parte de usuarios, sino que son obligatorias y donde los datos que requieren también están en la base sin necesidad de otras interacciones de usuarios posteriores al evento.
¿Se entiende?
Ahora bien, un trigger NO se dispara por un SELECT, por lo que el que haya un alta, baja o modificación de un registro dado no hace que ningún sistema lo refleje si no tienes una rutina diferente capaz de verificarlo.

En ese sentido, estas confundiendo los usos de ambas cosas.

Finalmente, ten en cuenta que lo que hagas con las aplicación (JavaScript, C#, Java, etc) es irrelevante para la base, porque la base de datos no interactúa con el usuario. Lo que haga tu aplicacion dependerá de lo que tu programes en ella.


¿Se va aclarando la idea?
Muchísimas gracias! Sí, se ha aclarado Claro, ahora veo el motivo de que, aunque se dispare un TRIGGER, no encuentre la manera de que no pueda "enterarme" de ello mediante otro lenguaje cualquiera (creo que es así la idea).

Etiquetas: diferencia, tabla
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 10:13.