【发布时间】:2015-03-26 22:07:53
【问题描述】:
给定一个包含多个表的数据库。我希望有一种机制在给定查询的结果发生变化时通知我。
比如我有下面两张表
CREATE TABLE employee (
e_id int,
firstname varchar(255),
lastname varchar(255),
d_id int
);
CREATE TABLE department (
d_id int,
name varchar(255)
);
和查询
SELECT firstname
FROM employee
JOIN department
ON employee.d_id = department.d_id
WHERE department.name = "financial";
当我对employee 或department 执行插入/更新/删除命令时,我希望收到通知,但前提是命令执行更改了查询结果。不改变查询结果的操作,例如lastname 列的更新不应导致通知。
我想要一个独立于 DBMS 的解决方案,但如果您知道特定 DBMS 的解决方案,请不要犹豫,分享它:-) 特别是,我对 postgresql、mysql 和 sqlite 感兴趣。
如果该解决方案也适用于更复杂的查询,那就太好了,例如带有子查询和/或聚合函数的查询。
另一个很棒的功能是准备好的语句。例如,当我通过将"financial" 替换为:department_name 来更改给定查询时,我会收到一个以部门名称作为参数的参数化通知。
我知道触发机制,但它似乎无法解决问题。
【问题讨论】:
标签: mysql sql database sqlite postgresql