두 테이블이 있습니다. 표 x와 표 y. 표 x는 매일 업데이트됩니다. Table x에 새로운 데이터가 삽입되면 바로 테이블 y를 업데이트하고 싶습니다. 표 y에는 매일 표 x의 모든 업데이트에 대한 집계 값이 포함됩니다. 날짜는 날짜 유형이고 나머지 두 열은 실제 유형입니다. Table_x는 매일 업데이트 될 수 있으며 table_y는 자동으로 업데이트되어야합니다.Postgres 트리거 함수는 다른 테이블에서 집계 된 결과를 업데이트합니다.
표 x
: 아래와 같이
Date Sales product
12/12/2017 14000 7
11/12/2017 3000 7
는 I 트리거 함수를 작성하지만, 집계 값보다는 각 항목을 갱신한다 :
Date Sales product
12/12/2017 4000 2
12/12/2017 3000 1
12/12/2017 2000 1
12/12/2017 5000 3
11/12/2017 1000 3
11/12/2017 2000 4
표 y
는 (아래와 같이 업데이트하기) .
CREATE OR REPLACE FUNCTION public.rec_insert_table_y()
RETURNS trigger AS
$BODY$
BEGIN
INSERT INTO table_y ("Date","Sales","product")
SELECT NEW."Date",(sum(NEW."Sales")),(sum(NEW."product"))
GROUP BY NEW."Date";
RETURN NEW;
트리거 기능 :
CREATE TRIGGER insert_into_table_y
AFTER INSERT
ON public.table_x
FOR EACH ROW
EXECUTE PROCEDURE public.rec_insert_table_y();
에서 실행 예제를 볼 수 있습니다 버전 어디서나. 그리고 당신의 기능도 불완전합니다. 또한 누락 : 기본 정보 : 새로운 제품을 테이블'x'에 삽입 할 수 있습니까? 또는 기존 제품의 새로운 행만? 정보를 완성하려면 [편집]하십시오. –
@Erwin : 제안한대로 정의를 업데이트하십시오. 내 Postgres 버전은 "PostgreSQL 9.5.3"입니다. 예, 신제품이 Table_x에 매일 삽입됩니다. – MoChen
내 의견의이 부분은 답이 없습니다 :'새로운 제품을 표 x에 삽입 할 수 있습니까? 또는 기존 제품의 새로운 행만? ' –