본문 바로가기
백엔드/데이터베이스에러

동일 키 값 발생 문제

by 1005ptr 2018. 5. 10.
반응형

CUD Trigger로 입력되는 변경이력 테이블의 PK를 CREATE TIME으로 설정해놨는데

(이것 -> to_char(current_timestamp(3),'yyyymmddhh24miss.ff') )


중복이 발생해버렸다


한 글을 보고 

to_char(current_timestamp(6),'yyyymmddhh24miss.ff')

to_char(current_timestamp(6),'yyyymmddhh24miss.ff6')


이렇게 해봤는데 microSecond값은 000으로 뜬다

윈도우 시스템에서 시간을 읽어오는데 그게 밀리까지만 제공해서 그렇단다


고유한 키값을 얻고싶다면 Oracle의 SYS_GUID를 사용해보란다

https://www.experts-exchange.com/questions/25094215/Create-a-microsecond-timestamp-in-oracle.html

https://docs.oracle.com/cd/B13789_01/server.101/b10759/functions153.htm


팀장님은 오라클시퀀스(Sequence)를 사용하란다

Date와 sequence를 혼합하여 사용 YYYYMMDD + SEQ 10자리(0000000000~9999999999)

반응형

댓글