我正在使用MySQL 5.1.39和Visual Studio 2008,并将两者都连接到MySQL Connector Net 6.1.2。

我想做的是一旦创建MySqlConnection对象,当给定表中特定行中的字段更新时,便能够处理“引发的事件”。

我的意思是,当该表中的值已被其他应用程序手动更改或修改时,我想在打开的VB.NET应用程序中接收信号。到目前为止,我是通过打开的VB.NET应用程序每隔X秒检查一次该表来完成此操作的,但是我想知道是否可以通过更好的方法来完成。

非常感谢您的关注和时间。

最佳答案

理想情况下,有一个SIGNAL构造,您可以use to field SQL logic errors构造,但是直到MySQL 5.5才可用。如果可能的话,最好升级到5.5。

编辑:5.5之前并没有真正好的解决方案。 TRIGGER用于获取更新,但不能用于将更新发送到数据库之外。不过请小心,因为如果通过外键动作(例如CASCADE或UPDATE)进行更新,则此操作将无效,因为不会为这些动作调用TRIGGER。所以要当心。

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 ;


my_on_update_procedure的工作由您决定。您的解决方案可能是5.1.39的最佳选择(由于可伸缩性问题,我不建议锁定),但5.5将为您提供SIGNAL构造,这正是您想要的(所以升级!)。

关于mysql - 从MySQL引发一个事件并从VB.NET(或类似的东西)处理它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2103772/

10-12 12:52
查看更多