Pregunta

Estoy trabajando con MySQL 5.1.39 y Visual Studio 2008 y que conecta tanto con MySQL Connector Net 6.1.2.

Lo que me gustaría hacer es una vez que se crea un objeto MySqlConnection, ser capaz de manejar el "caso planteado" cuando un campo en una fila de una tabla dada se actualiza.

Es decir, cuando ese valor en esa mesa se ha cambiado manualmente o modificado de cualquier otra aplicación, me gustaría recibir una señal en mi aplicación VB.NET abierto. Hasta ahora, lo hago desde la aplicación VB.NET abrió la comprobación de que la mesa cada X segundos, pero me pregunto si se podría hacer de una manera mejor.

Muchas gracias por su atención y tiempo.

¿Fue útil?

Solución

Idealmente, hay constructo el SIGNAL , que puede uso de la lógica SQL campo errores, pero que no estará disponible hasta MySQL 5.5. Sería la mejor manera de actualizar a 5.5, si es posible.

EDIT: No hay realmente una buena solución para esto antes de 5.5. El TRIGGER trabajos para conseguir las actualizaciones, pero no para el envío de ellos fuera de la base de datos. Tenga cuidado, sin embargo, ya que esto no funciona si está actualizando a través de claves foráneas, como CASCADE o UPDATE, como desencadenantes no son llamados para estas acciones. Así que ten cuidado con eso.

DELIMITER $$
CREATE TRIGGER my_trigger_name AFTER UPDATE ON my_table_name
FOR EACH ROW BEGIN
    CALL my_on_update_procedure(NEW.entry_name, NEW.whatever_else)
END $$

DELIMITER ; 

Lo que hace my_on_update_procedure depende de usted. Su solución es probablemente la mejor opción para el 5.1.39 (que no recomendaría bloqueo debido a problemas de escalabilidad), pero 5.5 le daría el constructo señal, que es exactamente lo que quiere (por lo que actualizar!).

Otros consejos

Nunca trabajó con eso, pero creo que "disparador" podría ser lo que estás buscando.

http://dev.mysql.com/doc /refman/5.1/en/create-trigger.html

Lo primero que pensé fue utilizar un trigger para desencadenar algún tipo de notificación: mensaje a través de correo electrónico, MOM o cualquier otra cosa. Googlear no se volvió mucho más arriba sin embargo. Me encontré con un enfoque basado en la notificación a través de las cerraduras: Linky . Podría ser un enfoque sano juicio ...

Ah, y en ese blog también hablar de MySQL UDF, que le permite ejecutar código arbitrario cuando se active el fuego. Al parecer hay liberaciones a varios idiomas. También hay un duplicado pregunta aquí en desbordamiento de pila. Saludos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top