같은 데이터가 중복되어서 들어가면 안되는 경우, 유니크 처리해야 한다.
중복된 데이터가 있으면 유니크 작업이 안되기 때문에, 유니크 설정 작업전에 중복 데이터가 있다면 삭제해야 한다.
1. 유니크 설정방법
원하는 컬럼에 UQ 를 체크해 준다.
위에서 UQ 체크한 email의 인덱스가 UNIQUE 처리되어 있다.
'abc@naver.com' 데이터가 저장되어 있는 user 테이블에
해당 값을 한번 더 insert를 하면, eamil은 유니크 처리되어 있기 때문에,
Error Code : 1062. Duplicate entry 오류가 발생하고, 중복 데이터 저장을 제한한다.
2. 이중 유니크 설정방법
- 두 개 이상의 컬럼값을 결합해서 유니크하게 설정하기
예를 들어, 내가 찜한 영화목록이 있다고 했을때,
같은 영화를 두 번 찜할 수는 없다.
그렇게 하기 위해서는, 두 컬럼 결합을 유니크하게 하는, 이중 유니크 설정을 해줘야 한다.
테이블 설정 - Indexes 탭에서,
movieId와 userId 결합된 키 값을 만들고,
Type을 UNIQUE로 선택해 준다.
이중유니크 설정 후, 동일 값을 두 번 insert 하게 되면
insert into favorite
(movieId, userId)
values
(10, 1) ;
insert into favorite
(movieId, userId)
values
(10, 1) ;
Error Code : 1062. Duplicate entry 오류가 발생된다. 유니크 설정이 잘 되었다.
'Database > MySQL' 카테고리의 다른 글
[MySQL] 테이블의 데이터 삭제 후 id값 초기화 하기, Auto Increment (0) | 2024.05.20 |
---|---|
[MySQL] SQL의 like 와 문자열 컬럼에 fulltext 설정 (0) | 2024.05.20 |
[MySQL] like(SQL 예약어)를 테이블명으로 사용하는 방법 (0) | 2024.05.17 |
[MySQL] 다중 테이블, 3개 이상의 테이블을 조인하는 방법 (0) | 2024.05.16 |
[MySQL] 테이블 합치기, 테이블 연결, 결합하는 join과 left join 방법과 예시 (0) | 2024.05.16 |