INSERT INTO dept_info (
dept_id
, up_dept_id
, dept_nm
, dept_expln
, dept_grd
, dept_sn
, use_yn
, rgtr
, reg_dt
) VALUES (
#{deptId}
, #{upDeptId}
, #{deptNm}
, #{deptExpln}
, #{deptGrd}
, #{deptSn}
, 'Y'
, #{rgtr}
, NOW()
)
INSERT INTO dept_authrt_info (
authrt_cd
, dept_id
, rgtr
, reg_dt
) VALUES (
#{authrtCd}
, #{deptId}
, #{rgtr}
, NOW()
)
INSERT INTO dept_mbr_info (
dept_id
, mbr_id
, rgtr
, reg_dt
) VALUES (
#{deptId}
, #{mbrId}
, #{rgtr}
, NOW()
)
SELECT dept_id AS id
, up_dept_id AS up_id
, dept_nm AS nm
FROM dept_info
UPDATE dept_info
SET up_dept_id = #{upDeptId}
, dept_nm = #{deptNm}
, dept_expln = #{deptExpln}
, dept_grd = #{deptGrd}
, dept_sn = #{deptSn}
, use_yn = #{useYn}
, mdfr = #{mdfr}
, mdfcn_dt = NOW()
WHERE dept_id = #{deptId}
DELETE
FROM dept_authrt_info
WHERE dept_id = #{deptId}
WITH RECURSIVE DeptHierarchy AS (
SELECT dept_id
, up_dept_id
FROM dept_info
WHERE dept_id = #{deptId}
UNION ALL
SELECT di.dept_id
, di.up_dept_id
FROM dept_info di
JOIN DeptHierarchy dh
ON di.up_dept_id = dh.dept_id
)
UPDATE dept_info SET use_yn = 'N' WHERE dept_id IN (SELECT dept_id FROM DeptHierarchy);
WITH RECURSIVE DeptHierarchy AS (
SELECT dept_id
, up_dept_id
FROM dept_info
WHERE dept_id = #{deptId}
UNION ALL
SELECT di.dept_id
, di.up_dept_id
FROM dept_info di
JOIN DeptHierarchy dh
ON di.up_dept_id = dh.dept_id
)
DELETE FROM dept_mbr_info WHERE dept_id IN (SELECT dept_id FROM DeptHierarchy);
DELETE
FROM dept_mbr_info
WHERE 1 = 1
AND mbr_id = #{mbrId}
UPDATE dept_info
SET up_dept_id = #{upDeptId}
, dept_grd = #{deptGrd}
, dept_sn = #{deptSn}
, mdfr = #{mdfr}
, mdfcn_dt = NOW()
WHERE dept_id = #{deptId}