oracle sql 시퀀스 생성 질문 0 3 592

by 문준 [2019.08.21 14:52:33]


oracle sql 시퀀스 생성시, 해가바뀌면 다시 1부터 시작하고 싶은데 어떻게 해야되나요?

by 타울 [2019.08.21 15:40:27]

시퀀스 자체에는 그런기능은 없는 걸로 알고 있습니다. 


by 농부지기 [2019.08.21 15:55:24]

보통 시퀀스는 main pk 1개 사용하기 .. 위와 같은 질문은 잘 안하는데..
왜 그럴까 생각해 봤습니다.

제생각 맞다면  pk가 년도별 + sequence로  사용하고 계신듯 하군요.

일단 년도별로 sequence가 1부터 시작하는 방법은 없는거 같구요.
만약, 저라면 아래와 같이 할거 같네요.

1. sequence를 년도별로 생성
   - sq_sale_2019
   - sq_sale_2020
   - sq_sale_2021
   - sq_sale_2022
   - ...
2. sequence 호출
   SELECT CASE WHEN  argument.년도 = '2019' THEN sq_sale_2019.NEXTVAL
               WHEN  argument.년도 = '2020' THEN sq_sale_2020.NEXTVAL
               WHEN  argument.년도 = '2021' THEN sq_sale_2021.NEXTVAL
               WHEN  argument.년도 = '2022' THEN sq_sale_2022.NEXTVAL
               END CASE
      FROM DUAL;
     
   - 아니면 위 SQL문장을 function으로 만들어서   dynamic sql로 생성하면
     case문이 위와 같이 여러가 아니여도 될거 같구요.

** 응용 잘 해서 성공하세요.


by 랑에1 [2019.08.22 09:18:43]

시퀀스 초기화 프로시서 생성하신후 job에 등록하셔서 사용하시는 방법이 있긴합니다.

 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입