Database
(MySQL) Unique Index로 컬럼에 중복값이 못들어오도록 하려면..
쿠카이든
2022. 3. 21. 10:51
728x90
- PK 컬럼말고 따로 고유 값을 받아야 하는 컬럼이 있을 때
- -> 유니크 인덱스(Unique Index)로 유니크 컬럼을 만들면 된다.
- 찾아보니 방법은 두가지가 있다.
매 쿼리문에서 방지 - 'where not exists' (비추천)
INSERT INTO BOARD_LIKE (BOARD_IDX, USER_IDX)
VALUES (11, 13)
WHERE NOT EXISTS
(SELECT BOARD_LIKE_IDX FROM BOARD_LIKE WHERE BOARD_IDX = 11 AND USER_IDX = 13)
컬럼 속성 설정 (추천하는 방식)
- 중복되면 안되는 컬럼 조합을 UNIQUE INDEX로 설정한다.
- UNIQUE INDEX
ALTER TABLE BOARD_LIKE ADD UNIQUE INDEX (USER_IDX)
- USER_IDX에 같은 값을 넣은 결과
- ConstraintViolationExeption 에러가 발생(중복 값을 넣을 수 없음)

728x90