UNIQUE중복되지 않는 유일한 값을 입력해야 하는 조건NULL 값을 허용한다.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'
CHECKDROP 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'));
다음과 같이 데이터를 입력하면 두 번째 행이 체크 제약조건에 위배되므로 오류가 발생한다.