728x90
반응형

1. oracle에서 시퀀스 추가는 1번만

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
-- 1. oracle 시퀀스 추가 (COLUMN_SEQ : 시퀀스에 해당되는 컬럼명)
CREATE SEQUENCE COLUMN_SEQ
    MINVALUE 1
    MAXVALUE 9999999999999999999999999999
    INCREMENT BY 1
    START WITH 1
    CACHE 20
    NOORDER
    NOCYCLE ;
 
-- 2. oracle에서 쿼리 사용 시
INSERT INTO TS_BOARD(COLUMN_SEQ,TITLE)
VALUES(COLUMN_SEQ.nextval,'HELLO');
SELECT COLUMN_SEQ.currval FROM dual; 
 -- > INSERT문과 함께 사용할때 최종 사용한 COLUMN_SEQ 값을 확인
 -- > 단독으로 사용시 에러메시지
   -- > ORA-08002: sequence TEST_SEQ.CURRVAL is not yet defined in this session
 
-- 3. oracle에서 단독으로 최종 사용된 시퀀스 값 확인 시
SELECT * FROM user_sequences WHERE sequence_name=upper('COLUMN_SEQ');
cs

 

2. mybatis에서 생성된 시퀀스 사용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 4. Mybatice에서 쿼리 사용 시 -->
<insert id="insertBoard" parameterType="BoardVO">
    <selectKey keyProperty="columnSeq" resultType="java.lang.Integer" order="BEFORE">
        select COLUMN_SEQ.NEXTVAL from dual
    </selectKey>
    <![CDATA[
        INSERT INTO TS_BOARD
            (
                COLUMN_SEQ
                , TITLE
            )
        VALUES
            (
                #{columnSeq}
                , #{title}
            )
    ]]>
</insert>
cs
728x90
반응형

+ Recent posts