UPDATE 는 꼭 하나씩 해야할까?
INSERT 의 경우,
INSERT INTO TALBE_A (a, b, c) VALUES (,,), (,,), (,,)
와 같이 한번에 여러 row 들을 INSERT 할 수 있다.
UPDATE 는?
UPDATE A
SET col1 = col, col2 = col
WHERE col3 = col
SET 에 여러개의 조건을 넣는 것 말고는 불가능해보인다.
과연 그럴까?
다음과 같은 쿼리를 통해서 다중 row 를 UPDATE 가 가능하다.
UPDATE A
SET col1 = tmp.col, col2 = tmp.col
FROM (
VALUES (a, b, c), (d, e, f)
) AS tmp_values (
col1,
col2,
col3
) WHERE A.col1 = tmp_values.col1
RETURNING
쿼리의 길은 역시 멀고도 험하다.