实际上我使用了以下阅读本页另一个问题的句子:
SELECT UPDATE_TIME
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'dbname'
AND TABLE_NAME = 'tabname'
但我认为它使用了大量的处理时间,如果 mysql-server 在表更新时向我发送信号,那么我可以等到我的程序检测到该信号,这样会更容易。
这可能吗?我正在用 C 编程。
非常感谢。
最佳答案
您可以使用触发器结合使用 C(++) 编程的 UDF 来执行通知。
这是伪代码。
DELIMITER $$
CREATE TRIGGER ai_table1_each AFTER INSERT ON table1 FOR EACH ROW
BEGIN
CALL ChangeNotification('table1', 'insert', NEW.id);
END $$
DELIMITER ;
您必须触发插入/删除和更新操作。每 table 3 次。
您不能向系统表 IIRC 添加触发器,因为这些实际上是 View 而不是实际表。
您需要用 C(++) 编写一个名为 changenotification
的 UDF 来为您发送通知。
链接:
http://dev.mysql.com/doc/refman/5.0/en/adding-udf.html
http://www.mysqludf.org/
http://dev.mysql.com/doc/refman/5.0/en/triggers.html
http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
关于mysql - 我如何知道 mysql 表是否已更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943539/