Database
PostgreSQL 테이블 행(row) 업데이트 발생 시 수정시각 컬럼(timestamp) 자동 업데이트 with 트리거(trigger)
JM_H
2023. 10. 21. 11:00
PostgreSQL에서는
MySQL의 ON UPDATE CURRENT_TIMESTAMP와 같은
테이블의 행(row)에 수정이 발생할 때,
지정하는 컬럼에 현재 시각을 업데이트 해주는 기능을 제공하지 않는다.
그래서 트리거(trigger)를 활용하여 동일한 기능을 구현 할 수 있다.
/* 실행 시 수정시각 업데이트 할 함수 생성 &
위 생성하는 함수가 특정 테이블의 행(row)에 수정이 발생할 때,
실행하도록 할 트리거(trigger) 생성
*/
CREATE OR REPLACE FUNCTION 함수명()
RETURNS TRIGGER AS $$
BEGIN
NEW.수정시각 업데이트할 컬럼명 = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER 트리거명
BEFORE UPDATE ON 테이블명
FOR EACH ROW
EXECUTE FUNCTION 함수명();