Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블에 CHECK 제약 조건을 추가하는 방법

MySQL 테이블에 CHECK 제약 조건 추가하기

MySQL에서 테이블에 CHECK 제약 조건을 추가하면 특정 컬럼에 저장되는 값이 지정한 조건을 만족하는지 데이터베이스 차원에서 자동으로 검증할 수 있습니다. 예를 들어, 나이(Age) 값이 항상 45 이상이어야 한다는 규칙을 강제할 수 있습니다.

1. 기본 문법

테이블에 CHECK 제약 조건을 추가하려면 테이블을 생성할 때 다음과 같이 작성합니다.

CREATE TABLE yourTableName (
    Column_name1 datatype,
    .
    .
    .
    Column_nameN datatype,
    CHECK( condition )
);

2. 나이 검증 조건 작성하기

예를 들어, 나이가 45세 이상인 값만 허용하려면 아래와 같은 CHECK 조건을 사용합니다.

CHECK(Age >= 45)

3. 실제 적용 예제

이제 실제로 테이블을 생성하면서 위에서 살펴본 나이 관련 CHECK 제약 조건을 함께 추가해 보겠습니다.

mysql> CREATE TABLE addCheckConstraintDemo
-> (
-> Age int,
-> CHECK(Age>=45)
-> );
Query OK, 0 rows affected (0.55 sec)

쿼리가 정상적으로 실행되면 "Query OK" 메시지와 함께 테이블이 생성됩니다. 이후 이 테이블에 나이가 45 미만인 데이터를 삽입하려고 하면 오류가 발생하여 잘못된 값의 입력을 막을 수 있습니다.

참고 사항

MySQL 8.0.16 버전부터 CHECK 제약 조건이 실제로 강제(enforce)됩니다. 그 이전 버전(5.7 등)에서는 CHECK 구문을 작성해도 서버가 이를 무시하므로, 사용 전에 반드시 MySQL 버전을 확인하는 것이 좋습니다. 또한 이미 존재하는 테이블에 제약 조건을 나중에 추가하려면 ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 CHECK(조건); 구문을 활용할 수 있습니다.