簡體   English   中英

Postgres:另一個表的引用單元格

[英]Postgres: Reference Cell of the other table

我這里有桌子

表格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;

如果您願意,視圖也可以完成此工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM