기타 제약 조건


1. 고유 키 제약조건 UNIQUE

DROP TABLE IF EXISTS buy, member;
CREATE TABLE member
( 	mem_id		CHAR(8) NOT NULL PRIMARY KEY,
  	mem_name	VARCHAR(10) NOT NULL,
    height		TINYINT	UNSIGNED NULL,
    email		CHAR(30) NULL UNIQUE -- UNIQUE 제약조건 설정
);
INSERT INTO member VALUES('BLK', '블랙핑크', 163, '[email protected]');
INSERT INTO member VALUES('TWC', '트와이스', 167, NULL);
INSERT INTO member VALUES('APN', '에이핑크', 164, '[email protected]');

이렇게 입력할 경우 중복 에러가 발생한다.

Error Code: 1062. Duplicate entry '[email protected]' for key 'member.email'

2. 체크 제약조건 CHECK

EX) 평균 키가 반드시 100 이상의 값만 입력되도록 제약조건 설정하기

DROP TABLE IF EXISTS member;
CREATE TABLE member
( 	mem_id		CHAR(8) NOT NULL PRIMARY KEY,
  	mem_name	VARCHAR(10) NOT NULL,
    height		TINYINT UNSIGNED NULL CHECK (height >= 100), -- CHECK 제약조건 설정
    phone1		CHAR(3) NULL
);
ALTER TABLE member
		ADD CONSTRAINT
		CHECK (phone1 IN ('02', '031', '032', '054', '055', '061'));

다음과 같이 데이터를 입력하면 두 번째 행이 체크 제약조건에 위배되므로 오류가 발생한다.