trigger 질문 0 2 1,499

by dongfa [PL/SQL] [2022.06.02 17:42:48]


직위가 부장인 직원이 있으면 그 부서에는 더이상 부장 직위를 가진 직원으로 업데이트하거나 삽입하지 않게 하려고 trigger를 만드려고 합니다.

select dept_id, emp_rank
from employee
GROUP BY dept_id, emp_rank
HAVING emp_rank ='부장'

으로 부장이 한명 이상 존재하는 부서를 뽑는 것까진 성공 하였는데 부서 별 부장의 수를 셀 수 있는 쿼리문은 힘드네요. 도움주시면 감사하겠습니다.

by 마농 [2022.06.02 17:57:52]

트리거가 걸린 테이블을 트리거 안에서 참조하는 것이 불가합니다.
해당 요구사항은 트리거보다는 유니크 인덱스가 적절합니다.
부장만 대상이 되니. 함수기반인덱스로 만들면 될 것 같습니다.
 

CREATE UNIQUE INDEX x01_employee ON employee(DECODE(emp_rank, '부장', dept_id));

 


by dongfa [2022.06.02 18:01:02]

아 그런 조건이 있는건 몰랐네요. 도움주셔서 감사합니다.

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