merge문을 postgreSQL에서 사용한다면? 0 0 4,371

by ampwings [DB 기타] postgreSQL [2016.08.05 17:24:30]


아래 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)

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입