■ 따로 사용자는 만들지 않고 BOARD 테이블만 만들었다.




구성은 게시글 아이디, 제목, 내용, 업로드 날짜, 작성자, 조회수, 추천수로 구성하였다.





■ 게시글 아이디 시쿼스 만들기






시퀀스 아이디는 BOARD_ID_SEQ로 만들었다. 1부터 시작해서 1씩 증가하고 999999까지가 입력된다.

최대숫자까지 입력이 되었다면 다시 1부터 시작하는 옵션이 Cycle이다.

시퀀스를 정렬하는 옵션이 Order이다


Cache는 시퀀스가 생성될 때 마다 24 캐쉬를 미리 만들어 놓는 것을 말한다.


■ 시퀀스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
INSERT   INTO BOARD (                                                                           
                        BOARD_ID                                                                    
                        , TITLE                                                                    
                        , CONTENT                                                                   
                        , CREATE_DATE                                                              
                        , WRITER                                                                     
                        , VIEW_COUNT                                                                
                        , RECOMMAND_COUNT                                                          
                    )                                                                                
VALUES   (                                                                                      
           'BD-' || TO_CHAR(SYSDATE, 'YYYYMMDDHH24'|| '-' || LPAD(BOARD_ID_SEQ.NEXTVAL, 6'0'
           , ?                                                                                    
           , ?                                                                                    
           , SYSDATE                                                                             
           , ?                                                                                   
           , 0                                                                                  
           , 0                                                                                   
         )                                                                                          
cs


BOARD_ID에 시퀀스를 INSERT하였다.


'BD-' || TO_CHAR(SYSDATE, 'YYYYMMDDHH24') || '-' || LPAD(BOARD_ID_SEQ.NEXTVAL, 6, '0')


이런식으로 INSERT 한 이유는 아이디의 중복값을 피하기 위해서다




■ TO_CHAR(SYSDATE, 'YYYYMMDDHH24')

시퀀스의 최대치를 999999로 설정을 해서 다시 1부터 지정하게 된다면 BOARD_ID의 PK값이 중복이 되는 것을 막기 위해 년월일시간까지 같이 입력을 해준것이다.



■LPAD(BOARD_ID_SEQ.NEXTVAL, 6, '0')

6자리로 시퀀스를 생성하되 빈자리는 왼쪽에서부터 0으로 체운다는 말이다



EX)  BD-2018081713-000027


27번째 생성된 BOARD_ID이다.

2018년 08월 17일날 13시에 생성된 것을 의미한다. 27숫자를 제외하고 나머지 숫자는 왼쪽에서부터 0으로 입력된 것을 확인할 수 있다.



















'Web' 카테고리의 다른 글

jstl.jar파일 standard.jar파일 빌드하기  (0) 2018.08.17
게시글 만들기 - 구성  (0) 2018.08.17
데이터베이스 연동  (0) 2018.08.16

+ Recent posts