직위가 부장인 직원이 있으면 그 부서에는 더이상 부장 직위를 가진 직원으로 업데이트하거나 삽입하지 않게 하려고 trigger를 만드려고 합니다.
select dept_id, emp_rank
from employee
GROUP BY dept_id, emp_rank
HAVING emp_rank ='부장'
으로 부장이 한명 이상 존재하는 부서를 뽑는 것까진 성공 하였는데 부서 별 부장의 수를 셀 수 있는 쿼리문은 힘드네요. 도움주시면 감사하겠습니다.
트리거가 걸린 테이블을 트리거 안에서 참조하는 것이 불가합니다.
해당 요구사항은 트리거보다는 유니크 인덱스가 적절합니다.
부장만 대상이 되니. 함수기반인덱스로 만들면 될 것 같습니다.
CREATE UNIQUE INDEX x01_employee ON employee(DECODE(emp_rank, '부장', dept_id));
아 그런 조건이 있는건 몰랐네요. 도움주셔서 감사합니다.