안녕하세요.
고코더 입니다.
MySQL은 편리한 기능이 많습니다. 그중에서도 잦은 데이터를 입력할 때 중복된 값이 있을 시에 오류를 발생시키지 않고, 동일한 데이터라면 필요한 컬럼만 업데이트가 가능합니다. 좀 더 쉽게 말하면 "동일한 데이터가 있을시 업데이트"를 시킬 수 있는 명령어가 있습니다.
● 1. 예를 한번 들어보겠습니다. table이라는 테이블에 PRIMARY KEY가 "name", "gender"에 걸려 있다고 생각합니다. 이를 쉽게 설명하면 name, gender가 같은 데이터는 존재할 수 없습니다. 만약 그런 데이터를 그냥 입력한다면 오류가 발생합니다. 하지만 ON DUPLICATE KEY UPDATE를 설정하면 다릅니다. 만약 같은 데이터가 있다면 이 SQL은 업데이트 문처럼 실행되고 PK가 아닌 age라는 값만 업데이트됩니다.
INSERT INTO table (
name,
gender,
age,
)
VALUES (
'gocoder',
'm'
'30',
)
ON DUPLICATE KEY UPDATE
age = '20',
● 2. 위에 실행된 쿼리는 이미 존재한다면 이렇게 SQL 쿼리가 변경되어 실행됩니다. insert이지만 실제 실행되는 건 나이만 업데이트가 됩니다.
Update table
set age = '20'
where name = 'gocoder'
and gender = 'm'
실무에서 정말 유용한 옵션이니 한번 곰곰이 생각해보고 익혀둡시다.
'IT_Developers > MySQL' 카테고리의 다른 글
MySQL - 날짜에 요일 알아내는 함수 / WEEKDAY (0) | 2021.11.07 |
---|---|
MySQL - group_concat / 조회 결과를 한 줄로 (0) | 2021.10.31 |
MySQL - "error code 2013 lost connection to mysql server during query" / 타임아웃 (0) | 2021.06.30 |
phpMyAdmin - 다운로드 받기 / 첨부파일 (0) | 2020.08.17 |
MariaDB - 마리아DB 명령프롬프트(CMD)로 루트 계정 접속하는 방법 (0) | 2020.02.18 |
댓글