본문 바로가기
DB

pk 2개, 여러개 설정 - SQLGate

by code2772 2023. 9. 26.

[ 목차 ]

    728x90
    반응형

    들어가며

    내가 이번에 만든 내용은 스팸번호 등록이다.
    여기서 이야기할 내용은 SQL 쪽만 이번에는 할 생각이다. 
    내용은 카테고리별 전체별을 각각 게이트웨이에서 해당 데이터의 컬럼을 보고 다른 서버의 파일에다가 내용을 자동으로 작성하게 하여 디비와 게이트웨이 파일에 작성하는 내용이다. 
    카테고리별 전체별 번호를 등록하면서 중복을제거하기 위해 나는 카테고리와 전화번호를 pk로 설정하였다. 


    PK 2개 이상

    카테고리  전화번호
    사과           010 - (O)
    사과           010 - 무결성 제약조건 위반 (X)
    사과           011 - (O)
    바나나       011 - (O)


    이런식으로 중복을 판별할 생각이였다.  기존에 만든 테이블에 ALTER ADD 를 사용해서 설정을 해주었다.

     

    위 방법을 사용하면 PK1, PK2, PK..... 이런식으로 테이블이 변경된다.

     


    스팸번호 입력하는 내용은 


    1. 카테고리 - 카테고리를 선택하거나 아니면 아무것도 적지 않거나 
    -> 여기에서 기존에 카테고리를 PK로 설정하고 NOT NULL로 설정을 하였기 때문에 DEFAULT ' ' 으로 설정하고 코드에서 ' ' 일때 전체로 출력되게 바꾸었다.
    2. 전화번호 
    3. 변경사유


    스팸번호 등록 삭제 내용은 

    테이블에 있는 스팸번호를 삭제하는것이 아니라 삭제시 FLAG 값과 편집시간을 변경하는 UPDATE 문을 사영하였다.
    그 이유는 디비에서만 스팸번호를 처리하는 것이 아니라 이 디비의 FLAG 값에 따라 게이트웨이의 파일에 해당 카테고리와 번호를 작성하기 위해서 였다.


    그외 선언한 컬럼이유


    HISTORY_ID : 시퀀스.nextval을 다른 것들을 찾기 편하게하기 위해 설정하였다.
    CPID : 관리자가 누가 작성을 했는지 확인과 카테고리 스팸번호 등록간 자신이 등록한 내용만 볼 수 있게하기 위해 선언
    EDITDATE : 스팸번호를 수정하거나 삭제했을 경우 언제했는지 확인하기 쉽고 예를들어 고객이 3개월 전 수정한 해당 내용 삭제 원할경우 확인을 간편하게하기 위해 선언


    주석달기

    COMMENT ON COLUMN 테이블.컬럼 IS '주석내용' ; 을 작성하면 주석이 달린다.

     

    반응형

    'DB' 카테고리의 다른 글

    SQL 시퀀스란 시퀀스 만들기(SQLGate)  (0) 2023.09.25