본문 바로가기

DataBase/SQL

[SQL] 컬럼에 제약 조건 추가.



 금번 내용은 지난 번에 'ALTER TABLE'이라는 제목으로 포팅한 적이 있는 내용의 연장

선상에 있는 내용이다. 


 이 내용을 추가 하게된 건, 이 번에 마주한 어떠한 문제 때문이었다.

문제의 내용은 음수값이 들어가면 안되는 컬럼에 음수값이 들어가는 문제가 발생한 것이다.


 사실 개발중인 프로젝트에서 편의성을 위해서 제공한 치트키의 오동작으로 인해서 발생한

문제이니 그쪽에서 처리를 해야 하지만, 일단의 DataBase의 안전성을 위해서 제약 조건을 

추가 하기로 했다.


 방법은 간단하다. 

 check constraint을 컬럼에 추가해 주면 된다. 테이블에도 추가 하는 방법이 있는데 이는 

다음 포스트로 미루기로 하고, 일단 컬럼에 추가하는 방법은 


 ALTER TABLE 테이블 명 ADD CONSTRAINT 제약조건 명 CHECK (조건);


즉 예를 들면

 ALTER TABLE 유저테이블 ADD CONSTRAINT cn_user_exp CHECK (EXP >= 0);


이런 식으로 하면된다.


제약조건의 삭제는 앞서 추가할때 사용한 제약조건 명을 사용한다. 

 ALTER TABLE 유저테이블 DROP CONSTRAINT 제약조건 명 

이렇게 하면 된다.


주의 : 만약 기존에 만들어진 테이블에 제약조건을 추가하는 경우라면 기존에 들어가 있는 값에 

주의해야 한다. 그러니 위의 예에서 경험치를 예를 든다면 음수값이 문제가 되서 제약 조건을 

추가하는 상황에서 제약 조건이 0 보다 크다를 지정할 때 0보다 작은 값이 이미 들어가 있다면 

조건은 추가 되지 않는다. 

'DataBase > SQL' 카테고리의 다른 글

[SQL] 작업 스케줄러  (0) 2013.03.22
[SQL] 동적쿼리와 like 구문.  (0) 2013.03.15
[SQL] 인덱스 (클러스터, 비클러스터) 개념  (0) 2013.02.26
[SQL] 테이블 변수  (0) 2013.02.13
[SQL] ALTER TABLE  (0) 2013.02.13