我这里有一张桌子
表格1
id value
1 30
2 40
3 34
4 56
我想在表 2 上创建一个“参考单元格”
表 2(从表 1 中收集 MAX)
Name value
1&2 40 [MAX Table1 (1,2)]
3&4 56 [MAX Table1 (3,4)]
我怎样才能实现参考表。其中表 2 引用了表 1 中的内容。每当更新表 1 时,表 2 中的值也会随之更新。
提前致谢
我这里有一张桌子
表格1
id value
1 30
2 40
3 34
4 56
我想在表 2 上创建一个“参考单元格”
表 2(从表 1 中收集 MAX)
Name value
1&2 40 [MAX Table1 (1,2)]
3&4 56 [MAX Table1 (3,4)]
我怎样才能实现参考表。其中表 2 引用了表 1 中的内容。每当更新表 1 时,表 2 中的值也会随之更新。
提前致谢
触发方式可以是这样的:
CREATE TRIGGER trigger_table1
BEFORE INSERT OR UPDATE
ON table1
FOR EACH ROW
EXECUTE PROCEDURE fn_trigger_table1();
和这样的功能:
CREATE OR REPLACE FUNCTION fn_trigger_table1()
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
IF (TG_OP = 'INSERT') OR (TG_OP = 'UPDATE') THEN
IF NEW.id=1 OR NEW.id=2 THEN
IF NEW.value>(SELECT MAX(value) FROM table1 WHERE (id=1 or id=2)) then
UPDATE table2 SET value=NEW.value WHERE name='1&2';
end if;
ELSE IF NEW.id=3 OR NEW.id=4 THEN
IF NEW.value>(SELECT MAX(value) FROM table1 WHERE (id=3 or id=4)) THEN
UPDATE table2 SET value=NEW.value WHERE name='3&4';
END IF;
END IF;
END IF;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
视图也可以完成这项工作,如果你愿意,我会给你一个示例。