반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MySQL] INSERT ON DUPLICATE KEY UPDATE 사용 방법 및 예시
SQL/MYSQL

[MySQL] INSERT ON DUPLICATE KEY UPDATE 사용 방법 및 예시

2024. 7. 15. 17:37
728x90
반응형

안녕하세요, 오늘은 MySQL의 특별한 INSERT 문인 "INSERT ... ON DUPLICATE KEY UPDATE"에 대해 알아보겠습니다. 이 문은 새로운 레코드를 추가하는 동시에 기존 레코드를 업데이트할 수 있는 매우 유용한 기능입니다.

"INSERT ... ON DUPLICATE KEY UPDATE" 구문의 기본 형태는 다음과 같습니다:

INSERT INTO 테이블명 (열1, 열2, ...)
VALUES (값1, 값2, ...)
ON DUPLICATE KEY UPDATE 열1 = 값1, 열2 = 값2, ...;


이 구문은 다음과 같은 방식으로 동작합니다:

1. 먼저 새로운 레코드를 삽입하려고 시도합니다.
2. 만약 기존 레코드와 중복되는 고유 키 값(primary key 또는 unique key)이 있다면, 해당 레코드를 업데이트합니다.
3. 중복되는 키 값이 없다면 새로운 레코드를 삽입합니다.

예를 들어, 사용자 정보를 저장하는 "users" 테이블이 있다고 가정해 보겠습니다. 이 테이블에는 사용자의 이메일 주소가 고유 키로 설정되어 있습니다. 새로운 사용자를 추가하거나 기존 사용자의 정보를 업데이트하는 경우 다음과 같이 쿼리를 작성할 수 있습니다:

INSERT INTO users (name, email, age)
VALUES ('John Doe', 'john@example.com', 30)
ON DUPLICATE KEY UPDATE name = 'John Doe', age = 30;


이 쿼리는 다음과 같이 동작합니다:

1. "users" 테이블에 새로운 레코드를 추가하려고 시도합니다.
2. 만약 "email" 열의 값인 'john@example.com'이 이미 존재한다면(고유 키 중복), 해당 레코드의 "name" 열을 'John Doe'로, "age" 열을 30으로 업데이트합니다.
3. 중복되는 키 값이 없다면 새로운 레코드를 삽입합니다.

이처럼 "INSERT ... ON DUPLICATE KEY UPDATE" 구문은 새로운 레코드 삽입과 기존 레코드 업데이트를 한 번에 처리할 수 있어 매우 편리합니다. 특히 사용자 정보, 제품 정보, 주문 내역 등의 데이터를 관리할 때 유용하게 사용할 수 있습니다.

이 구문을 사용하면 별도의 UPDATE 쿼리를 작성할 필요가 없어 코드의 중복을 줄일 수 있고, 데이터 처리 속도도 향상될 수 있습니다. 또한 트랜잭션 처리 측면에서도 장점이 있죠.

 

728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MySQL] LOAD DATA 사용 방법 및 예시  (0) 2024.07.28
[MySQL] INTERSECT 사용 방법 및 예시  (0) 2024.07.27
[MySQL] LOAD XML 사용 방법 및 예시  (0) 2024.07.26
[MySQL] INSERT DELAYED 사용 방법 및 예시  (0) 2024.07.26
[MySQL] Insert 사용 방법 및 예시  (0) 2024.07.15
[MySQL] IMPORT TABLE 사용 방법 및 예시  (0) 2024.05.03
[MySQL] HANDLER 사용 방법 및 예시  (0) 2024.05.03
[MySQL] DO 사용 방법 및 예시  (0) 2024.04.25
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] LOAD XML 사용 방법 및 예시
    • [MySQL] INSERT DELAYED 사용 방법 및 예시
    • [MySQL] Insert 사용 방법 및 예시
    • [MySQL] IMPORT TABLE 사용 방법 및 예시
    Ant_U
    Ant_U

    티스토리툴바