티스토리 뷰
반응형
제약조건을 너무 남발하면 DB성능이 30%정도 떨어진다고 합니다.
적당한 곳에 제대로 활용하면 데이터 정합성이 더욱 견고해 지겠죠.
제약조건중 check 기능을 활용해 봅시다.
test라는 테이블의 status 컬럼이 있다고 가정하고, status 컬럼에는 'A','B','C' 값만 올 수 있다고 한다면
아래와 같은 제약조건으로 데이터 정합성을 보장할 수 있습니다.
alter table test add constraint status check( status in ('A','B','C'));
해당 컬럼 뿐만아니라 다른 컬럼과의 관계도 제약조건으로 만들 수 있습니다.
test라는 테이블에 gbn 컬럼이 있고 마찬가지로 gbn에는 'A','B','C'만 올 수 있습니다.
그런데 또다른 컬럼인 code 컬럼은 gbn이 'A'이면 6자리 문자열, 'B'면 8자리, 'C'면 10자리 문자열만 올 수 있습니다.
alter table test add constraint gbn check( ( gbn='A' and length(code) = 6)
or
( gbn='B' and length(code) = 8)
or
( gbn='C' and length(code) = 10)
)
check 제약조건을 적소에 활용한다면 좀더 편하게 프로그래밍할 수 있고, DB도 관리할 수 있겠죠.
적당한 곳에 제대로 활용하면 데이터 정합성이 더욱 견고해 지겠죠.
제약조건중 check 기능을 활용해 봅시다.
test라는 테이블의 status 컬럼이 있다고 가정하고, status 컬럼에는 'A','B','C' 값만 올 수 있다고 한다면
아래와 같은 제약조건으로 데이터 정합성을 보장할 수 있습니다.
alter table test add constraint status check( status in ('A','B','C'));
해당 컬럼 뿐만아니라 다른 컬럼과의 관계도 제약조건으로 만들 수 있습니다.
test라는 테이블에 gbn 컬럼이 있고 마찬가지로 gbn에는 'A','B','C'만 올 수 있습니다.
그런데 또다른 컬럼인 code 컬럼은 gbn이 'A'이면 6자리 문자열, 'B'면 8자리, 'C'면 10자리 문자열만 올 수 있습니다.
alter table test add constraint gbn check( ( gbn='A' and length(code) = 6)
or
( gbn='B' and length(code) = 8)
or
( gbn='C' and length(code) = 10)
)
check 제약조건을 적소에 활용한다면 좀더 편하게 프로그래밍할 수 있고, DB도 관리할 수 있겠죠.
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- yugabyteDB
- Pixel Pals
- 별잉 빛나는 밤
- 고체 향수
- 솔리드 쿨론
- 매직 트랙패드2
- 남설 팔찌
- JMW 헤어드라이기기
- weka
- 코라나 19
- 르세라핌
- 홈 오피스
- 카카오 에드
- 배당급
- node.js
- Life Chair
- 별이 빚나는 밤
- 톡토기
- 오미크론
- VARIDESK
- 화분벌레
- Sybase IQ
- 브리다 정수기
- 유가바이트디비
- 루미큐브 종류
- 증권정보포털
- 로니카 BCS
- GKRS
- 파나소닉 비데 DL-EH10KWS
- 빈센트 반 고흐
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함