헤르메스 LIFE

[PostgreSQL] Trigger 관련 본문

Database

[PostgreSQL] Trigger 관련

헤르메스의날개 2024. 10. 24. 14:25
728x90

PostgreSQL은 Trigger 에서 Function 이나 Procedure 를 Call 을 하는 구조로 되어 있는 것 같습니다.

drop trigger [트리거명] on [트리거 관련 테이블명] cascade;

create or replace trigger [트리거명]
--after insert or update on [트리거 관련 테이블명]
after update on [트리거 관련 테이블명]
for each row
execute function [트리거에서 call할 함수명]();
-- DROP FUNCTION public.[트리거에서 call되는 함수명]();

CREATE OR REPLACE FUNCTION [트리거에서 call되는 함수명]()
 RETURNS trigger
 LANGUAGE plpgsql
AS $function$
Begin

    if old.user_nm != new.user_nm or old.mail_addr != new.mail_addr or old.tel_no != new.tel_no
    then

        /* ZZ_USER_M 테이블이 수정되기 후 History 를 남깁니다. */
        INSERT INTO [백업테이블명] (user_id, user_nm, mail_addr, tel_no,
                            , reg_id, reg_dtm, upd_id, upd_dtm) values
                            (new.user_id, new.user_nm, new.mail_addr, new.tel_no
                            , new.reg_id, new.reg_dtm, new.upd_id, new.upd_dtm);
    end if;

    return null;
end;
$function$
;

참고

https://neon.tech/postgresql/postgresql-triggers

 

PostgreSQL Triggers

Show how to work with PostgreSQL triggers, which are the functions invoked automatically when an event occurs in the associated tables.

neon.tech

 

728x90