IT - S/W, Biz/S/W Development

index hint 를 이용한 max + 1 채번

Ever White 2014. 5. 28. 13:25

예전 글 옮깁니다.


index 를 이용한 max + 1 채번
( db 이관 작업있을경우 작업후에 제대로 채번이 되지 않을수 있어 선호하지 않는 방식이다.
  아무튼... 정리... )

아래 sql : 임시테이블의 데이터를 최종테이블로 옮기면서 채번값을 구함

before

--INSERT INTO jeeta_BOARD
SELECT
    BULLETIN_NUM
        ,CUST_ID
        ,( SELECT MAX(LIST_NUM) FROM FIK_BOARD
            WHERE CUST_ID = 'fix'
            AND BULLETIN_NUM = 'news'
            ) + ROWNUM
        ,B_DATE
        ,NAME
        ,PWD
        ,EMAIL
        ,TITLE
        ,REST
        ,CONTENT
        ,REFER
        ,FILE_PATH
        ,REF
        ,REF_SEQ
 FROM T_jeeta A
WHERE A.B_DATE = TO_char(SYSDATE - 1,'yy/mm/dd') 

after

--INSERT INTO jeeta_BOARD
SELECT
    BULLETIN_NUM
        ,CUST_ID
        ,( SELECT /*+ index_desc(a SYS_C006554) */
         LIST_NUM
          FROM WEBADM.jeeta_BOARD a
         WHERE CUST_ID = 'fix'
           AND BULLETIN_NUM = 'news'
           AND ROWNUM =1
            ) + ROWNUM
        ,B_DATE
        ,NAME
        ,PWD
        ,EMAIL
        ,TITLE
        ,REST
        ,CONTENT
        ,REFER
        ,FILE_PATH
        ,( SELECT /*+ index_desc(a SYS_C006554) */
         LIST_NUM
          FROM WEBADM.jeeta_BOARD a
         WHERE CUST_ID = 'fix'
           AND BULLETIN_NUM = 'news'
           AND ROWNUM =1
            ) + ROWNUM
        ,REF_SEQ
 FROM T_C0_jeeta A
WHERE A.B_DATE = TO_char(SYSDATE - 1,'yy/mm/dd')