SQL 한번에 여러 데이터를 기입하며, 이미 존재하는 데이터일 때는 업데이트만 하는 문법
데이터베이스에 이미 입력된 데이터들에 대한 업데이트를 진행할 때 주로 사용하는 것은 UPDATE 문법이다.
그런데 UPDATE 문법은 한번에 하나의 데이터에 대해서만 가능하다. 다르게 말하면, 데이터의 양이 많을 때 데이터 업데이트는 엄청난 시간을 소모할 수 있다는 것이다.
- 중요한 것은 한번의 쿼리로 모든 데이터를 업데이트 하는 것이다.
DUPLICATE KEY
INSERT 문법을 이용해서 해결할 수 있다. INSERT 문법이 데이터 업데이트에 무슨 상관이지? 할 수 있다. INSERT 문법과 ON DUPLICATE KEY UPDATE 를 함께 사용하면, 이미 존재하는 Primary Key가 존재할 때에는 해당 행을 업데이트 하고, 없는 데이터는 INSERT할 수 있는 문법이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
INSERT INTO tableName (user_id, user_email)
VALUES
(123, "[email protected]"),
(163, "[email protected]"),
(204, "[email protected]"),
(596, "[email protected]"),
(573, "442@@example.com"),
(311, "502@@example.com"),
(850, "937@@example.com")
ON DUPLICATE KEY UPDATE
user_id = VALUES(user_id),
user_email = VALUES(user_email)
;
이렇게 할 경우 유저 ID와 Email을 Insert하며, 이미 존재하는 user_id이면 데이터를 update하는 것이다.
이렇게 하나의 쿼리를 통해 다량의 데이터를 INSERT 및 업데이트 할 수 있게 되는 것이다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.