아래 Merge문은 정상 작동되는 코드입니다.
MERGE INTO cart
USING dual on(partNum=#{param3} AND id=#{param6})
WHEN MATCHED THEN
UPDATE SET qty=qty+#{param5}
WHEN NOT MATCHED THEN
INSERT(country, b_Name, partNum, description, qty, id)
VALUES(#{param1},#{param2},#{param3},#{param4},#{param5},#{param6})
postgreSQL에서는 Merge문을 지원하지 않는다고 본 것 같습니다.
위 코드를 postgreSQL로 바꾼다면 이렇게 하는게 맞는 건가요?
WITH upsert AS (UPDATE cart SET qty=qty+#{param5}
WHERE partNum=#{param3} AND id=#{param6} RETURNING *)
INSERT INTO cart (country, b_Name, partNum, description, qty, id)
SELECT #{param1},#{param2},#{param3},#{param4},#{param5},#{param6}
WHERE NOT EXISTS (SELECT * FROM upsert)