Files
TK-FB-Project/synology_deployment/api/migrations/008_create_update_triggers.sql
Hyungi Ahn a9bce9d20b fix: 캘린더 모달 중복 카드 문제 및 삭제 권한 개선
- monthly_worker_status 조회 시 GROUP BY로 중복 데이터 합산
- 작업보고서 삭제 권한을 그룹장 이상으로 제한 (admin, system, group_leader)
- 중복 데이터 정리를 위한 마이그레이션 SQL 추가 (009_fix_duplicate_monthly_status.sql)
- synology_deployment 버전에도 동일 수정 적용
2025-12-02 13:08:44 +09:00

37 lines
1.0 KiB
SQL

-- 008_create_update_triggers.sql
-- 작업보고서 변경 시 월별 집계 자동 업데이트 트리거
DELIMITER $$
-- 작업보고서 INSERT 트리거
CREATE OR REPLACE TRIGGER tr_daily_work_reports_insert
AFTER INSERT ON daily_work_reports
FOR EACH ROW
BEGIN
CALL UpdateMonthlyWorkerStatus(NEW.report_date, NEW.worker_id);
END$$
-- 작업보고서 UPDATE 트리거
CREATE OR REPLACE TRIGGER tr_daily_work_reports_update
AFTER UPDATE ON daily_work_reports
FOR EACH ROW
BEGIN
-- 기존 날짜 업데이트
CALL UpdateMonthlyWorkerStatus(OLD.report_date, OLD.worker_id);
-- 새 날짜가 다르면 새 날짜도 업데이트
IF OLD.report_date != NEW.report_date OR OLD.worker_id != NEW.worker_id THEN
CALL UpdateMonthlyWorkerStatus(NEW.report_date, NEW.worker_id);
END IF;
END$$
-- 작업보고서 DELETE 트리거
CREATE OR REPLACE TRIGGER tr_daily_work_reports_delete
AFTER DELETE ON daily_work_reports
FOR EACH ROW
BEGIN
CALL UpdateMonthlyWorkerStatus(OLD.report_date, OLD.worker_id);
END$$
DELIMITER ;