ON DUPLICATE KEY UPDATE
-> 데이터 삽입 시에 Primary Key(PK)나 Unique Key(UK)가 중복되었을 때 지정된 데이터를 업데이트하는 명령어입니다.
주로 이 명령어는 데이터베이스에 데이터를 삽입할 때 중복된 키가 발생할 수 있는 경우에 사용됩니다. 이때, 중복된 키가 발생하면 해당 키에 대한 데이터를 업데이트하고, 중복된 키가 없는 경우에는 새로운 데이터를 삽입합니다.
예시)
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
여기서 "id"가 Primary Key로 정의되어 있습니다. 이제 이 테이블에 데이터를 삽입할 때 "id"가 중복되는 경우에는 해당 데이터의 "age"를 업데이트하는 예제를 살펴보겠습니다.
INSERT INTO users (id, name, age) VALUES (1, 'John', 30)
ON DUPLICATE KEY UPDATE age = VALUES(age);
주어진 INSERT 쿼리문은 다음과 같은 동작을 수행합니다.
- 만약 "id"가 1인 레코드가 이미 테이블에 존재한다면, 해당 레코드의 "age"를 30으로 업데이트합니다.
- 만약 "id"가 1인 레코드가 테이블에 존재하지 않는다면, 새로운 레코드를 삽입합니다.
따라서 "id"가 1인 레코드가 이미 존재한다면 해당 레코드의 "age"가 30으로 업데이트됩니다.
'MySQL' 카테고리의 다른 글
[MySQL] 데이터 삽입시에 Primary Key(PK)나 Unique Key(UK)가 중복되었을 때 무시하고 삽입하는 명령어 INSERT IGNORE INTO ~ (0) | 2024.05.27 |
---|---|
[MySQL] MySQL 테이블에 있는 데이터 csv, json 파일로 옮기는 방법 (0) | 2023.12.13 |
[MySQL] foreign key의 on delete cascade 설정 방법과 동작 방법 (0) | 2023.12.04 |
[MySQL] Error Code : 1062. Duplicate entry가 나오는 이유 (0) | 2023.12.04 |
[MySQL] 테이블에 unique 설정하는 방법 (0) | 2023.12.04 |