实际上,我在本页的另一个问题上使用了以下句子:
SELECT UPDATE_TIME
FROM information_schema.tables
WHERE TABLE_SCHEMA = 'dbname'
AND TABLE_NAME = 'tabname'
但我认为它使用了大量的处理时间,如果更新表时mysql-server会向我发送信号会更容易,所以我可以等到我的程序检测到该信号。
这可能吗?我正在用C编程。
非常感谢。
答案 0 :(得分:4)
您可以使用与C(++)中编程的UDF结合的触发器来进行通知 这是虚拟代码。
DELIMITER $$
CREATE TRIGGER ai_table1_each AFTER INSERT ON table1 FOR EACH ROW
BEGIN
CALL ChangeNotification('table1', 'insert', NEW.id);
END $$
DELIMITER ;
您必须执行插入/删除和更新的触发器。每张桌子3次。
您无法向系统表IIRC添加触发器,因为它们实际上是视图而不是实际表。
你需要在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