728x90
반응형
postgresql 사용하다
INSERT INTO TB_CD(CTGRY, CD, LVL, CD_NM, CD_EXPLN, RSVT1, RSVT2, RSVT3, CD_SEQ, STTS_CD, SITE_SN)
VALUES(#{ctgry}, #{cd}, #{lvl}::INTEGER, #{cdNm}, #{cdExpln}, #{rsvt1}, #{rsvt2}, #{rsvt3}, #{cdSeq}, #{sttsCd}, #{siteSn})
ON CONFLICT(CD) DO UPDATE
SET CD_NM = #{cdNm},
CD_EXPLN = #{cdExpln},
RSVT1 = #{rsvt1},
RSVT2 = #{rsvt2},
RSVT3 = #{rsvt3},
CD_SEQ = #{cdSeq},
STTS_CD = #{sttsCd}
이렇게 넣다가 에러가 났는데
DB TABLE에 PK로 선언되거나 UK 로 선언된 것을 다 COFLICT 안에 넣어줘야한다.
INSERT INTO TB_CD(CTGRY, CD, LVL, CD_NM, CD_EXPLN, RSVT1, RSVT2, RSVT3, CD_SEQ, STTS_CD, SITE_SN)
VALUES(#{ctgry}, #{cd}, #{lvl}::INTEGER, #{cdNm}, #{cdExpln}, #{rsvt1}, #{rsvt2}, #{rsvt3}, #{cdSeq}, #{sttsCd}, #{siteSn})
ON CONFLICT(CTGRY, CD, LVL, SITE_SN) DO UPDATE
SET CD_NM = #{cdNm},
CD_EXPLN = #{cdExpln},
RSVT1 = #{rsvt1},
RSVT2 = #{rsvt2},
RSVT3 = #{rsvt3},
CD_SEQ = #{cdSeq},
STTS_CD = #{sttsCd}
728x90
반응형