INSERT INTO cd_mng (
cd
, up_cd
, cd_nm
, cd_vl
, cd_expln
, cd_grd
, cd_sn
, use_yn
, sys_pvsn_yn
, rgtr
, reg_dt
) VALUES (
#{cd}
, #{upCd}
, #{cdNm}
, #{cdVl}
, #{cdExpln}
, #{cdGrd}
, #{cdSn}
, 'Y'
, 1
, #{rgtr}
, NOW()
)
SELECT cd
, up_cd
, cd_nm
, cd_vl
, cd_expln
, cd_grd
, cd_sn
, use_yn
, sys_pvsn_yn
, rgtr
, TO_CHAR(reg_dt, 'YYYY-MM-DD HH24:MI') AS reg_dt
, mdfr
, TO_CHAR(mdfcn_dt, 'YYYY-MM-DD HH24:MI') AS mdfcn_dt
FROM cd_mng
UPDATE cd_mng
SET cd = #{cd}
, up_cd = #{upCd}
, cd_nm = #{cdNm}
, cd_vl = #{cdVl}
, cd_expln = #{cdExpln}
, cd_grd = #{cdGrd}
, cd_sn = #{cdSn}
, use_yn = #{useYn}
, mdfr = #{mdfr}
, mdfcn_dt = NOW()
WHERE cd = #{originCd}
UPDATE cd_mng
SET up_cd = #{cd}
WHERE up_cd = #{originCd}
WITH RECURSIVE CodeHierarchy AS (
SELECT cd
, up_cd
FROM cd_mng
WHERE cd = #{cd}
UNION ALL
SELECT cm.cd
, cm.up_cd
FROM cd_mng cm
JOIN CodeHierarchy ch
ON cm.up_cd = ch.cd
)
DELETE FROM cd_mng WHERE cd IN (SELECT cd FROM CodeHierarchy)
SELECT cd AS id
, up_cd AS up_id
, cd_nm AS nm
FROM cd_mng
UPDATE cd_mng
SET up_cd = #{upCd}
, cd_grd = #{cdGrd}
, cd_sn = #{cdSn}
, mdfr = #{mdfr}
, mdfcn_dt = NOW()
WHERE cd = #{cd}