-
[Oracle] mysql 기능인 ON UPDATE CURRENT_TIMESTAMP를 oracle에서 구현하기DataBase/Oracle 2018. 10. 2. 15:56
mysql에서 ON UPDATE CURRENT_TIMESTAMP란
데이터가 바뀔 때마다 자동으로 원하는 컬럼에 현재 시간으로 자동 업데이트 해주는 기능이다.
보통 '수정한 날짜'에 해당하는 컬럼에 많이 쓰이는 것으로 보인다.
mysql에서는 테이블 생성 당시에 해당 기능을 만들 수 있다.
1234CREATE TABLE `demo_table` (`modified_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)cs 하지만, oracle에는 이러한 기능이 없어 trigger로 구현해야 한다. oracle 구현방법도 어렵지 않다.
1234567create or replaceTRIGGER schema.name_of_triggerBEFORE INSERT OR UPDATE ON schema.name_of_tableFOR EACH ROWBEGIN:new.modified_date := SYSTIMESTAMP;END;cs 적용될 테이블이 new라는 이름의 변수로 생성된다.
new.(수정할 컬럼) := SYSTIMESTAMP;를 작성하면 된다.
UPDATE로 해당 테이블을 수정할 때마다, modifed_date 컬럼의 데이터는 자동으로 현재 시간으로 수정된다는 것을 확인할 수 있다.
출처: StackOverFlow
'DataBase > Oracle' 카테고리의 다른 글
[Oracle] 계층구조 쿼리 정리란?(퍼온 글) (0) 2018.10.04 [Oracle] 값이 number형인지 체크해주는 함수 만들기(IS_NUMBER) (0) 2018.10.03 [Oracle] VARCHAR2(10) 과 VARCHAR2(10 CHAR)의 차이점 (0) 2018.10.02 [Oracle] MySQL과 Oracle 테이블 JOIN 걸어서 UPDATE하는 방법 (0) 2018.09.23 [Oracle] SQL문으로 중복 데이터 삭제하기 (0) 2018.09.21