나는 awards라는 테이블이 있습니다. 테이블 어워드의 각 삽입이 다른 테이블을 업데이트하는 PostgreSQL에서 트리거를 어떻게 마운트 할 수 있습니까?트리거를 삽입하여 PostgreSQL을 사용하여 다른 테이블 업데이트
답변
documenation for PL/PgSQL triggers을 원하면이 경우에 대해서만 설명하십시오. 일반 documentation on triggers도 유용 할 수 있습니다.
BEFORE
또는 AFTER
트리거를 사용할 수 있습니다. 그래도 AFTER
트리거를 사용하여 트리거가 삽입되는 행의 최종 버전을 보았습니다. 물론 FOR EACH ROW
을 원합니다.
안녕하세요. @Craig Ringer는 일괄 삽입을 위해 FOR EACH ROW의 목적입니까? – rosenthal
@rosenthal 응? 'FOR EACH STATEMENT' 트리거는'NEW' 행에 접근 할 수 없습니다. 그래서 만약 당신이 단 한 줄의 INSERT를하고 있었다고해서 이것에 도움이되지는 않을 것입니다. –
나는 그 말을하지 않았다. 나의 가난한 선택을 용서했다. 나는 각각의 행이 무엇을 의미합니까? Postgres의 설명서를보고 지금 이해합니다. "FOR EACH ROW로 표시된 트리거는 연산이 수정하는 모든 행에 대해 한 번 호출됩니다." – rosenthal
다음 링크를 클릭하면 답변을 얻을 수 있습니다.
http://www.postgresql.org/docs/9.4/static/plpgsql-trigger.html
는 여기에서 우리는 table1
및 table2
라는 두 개의 테이블이있다. 트리거를 사용하여 table1
에 삽입하면 table2
을 업데이트합니다.
테이블
CREATE TABLE table1
(
id integer NOT NULL,
name character varying,
CONSTRAINT table1_pkey PRIMARY KEY (id)
)
CREATE TABLE table2
(
id integer NOT NULL,
name character varying
)
CREATE OR REPLACE FUNCTION function_copy() RETURNS TRIGGER AS
$BODY$
BEGIN
INSERT INTO
table2(id,name)
VALUES(new.id,new.name);
RETURN new;
END;
$BODY$
language plpgsql;
이 트리거가
CREATE TRIGGER trig_copy
AFTER INSERT ON table1
FOR EACH ROW
EXECUTE PROCEDURE function_copy();
트리거 함수에서 테이블 1의 값을 삽입하는 방법을 아는 방법은 무엇입니까? "values (new.id, new.name)"다음에 "from table1"을 쓸 필요가 없습니까? –
- 1. MySQL 트리거를 사용하여 last_modified 데이터로 테이블 업데이트
- 2. 트리거를 사용하여 다른 데이터베이스의 테이블을 업데이트
- 3. PostgreSQL을 내가 파이썬 에서 PostgreSQL을 사용하여 데이터베이스 테이블을 업데이트
- 4. JOIN (대형 테이블 성능) Postgresql을 사용하여 업데이트 하시겠습니까?
- 5. 트리거를 사용하여 db-cache 업데이트
- 6. SQL 삽입 트리거를 사용하여 INSERTED 테이블 값 업데이트
- 7. PostgreSQL을 사용하여 SQL 테이블을 자체 행으로 업데이트
- 8. PostgreSQL을 - 테이블 세트 기본
- 9. 업데이트 테이블
- 10. 다른 테이블에서 DISTINCT 함수를 사용하여 테이블 업데이트
- 11. 하나의 DataContext에 삽입하여 다른 데이터 시트에 제출하십시오.
- 12. PostgreSQL을
- 13. 트리거를 사용하여 다른 데이터베이스의 값을 확인하려면
- 14. PostgreSQL을
- 15. 다른 테이블에서 SUM으로 테이블 업데이트
- 16. 업데이트 테이블 커서를 사용뿐만 아니라 다른 테이블
- 17. PostgreSQL을 사용하여 ejabberd 설정
- 18. 다른 스레드의 JScrollPane에서 테이블 업데이트
- 19. Xcode 다른 메서드에서 테이블 업데이트
- 20. 다른 테이블의 테이블 데이터 업데이트
- 21. MYSQL의 다른 테이블에서 테이블 업데이트
- 22. 데이터베이스 잠금이없는 트리거를 통한 SQL 업데이트
- 23. coredata를 사용하여 테이블 열 업데이트
- 24. PostgreSQL을 열 및 테이블 이름을 인용 대신 다른 문자를 사용
- 25. 업데이트 트리거를 만드는 방법은 무엇입니까?
- 26. 트리거를 사용하여 삽입을 무시합니다.
- 27. PostgreSQL을 트리거
- 28. 트리거를 사용하여 SQL Server 2008의 업데이트 된 열 저장
- 29. PostgreSQL을 - 테이블 이름과 같은 동적 값
- 30. Postgresql을 사용하여 사용자 관리
는 일부 MOR을 제공 할 수있는 트리거 기능 만들기 전자 세부 사항? 이 "다른 테이블"은 하나의 별개의 테이블 또는 상금의 일부 필드 값에 기반한 여러 개의 테이블입니까? – jcater
http://www.postgresql.org/docs/8.1/static/triggers.html – ertx
@ertx /8.1/doc 대신/current/doc에 링크하는 것이 더 좋습니다. –