Files
TK-FB-Project/api.hyungi.net/db_archive/migrations/008_create_update_triggers.sql
Hyungi Ahn b67362a733 feat: Introduce knex for database migrations
- Adds knex.js to manage database schema changes systematically.
- Creates an initial migration file based on `hyungi_schema_v2.sql` to represent the current database state.
- Adds npm scripts (`db:migrate`, `db:rollback`, etc.) for easy execution of migration tasks.
- Archives legacy SQL files and old migration scripts into the `db_archive/` directory to prevent confusion and clean up the project structure.
2025-12-19 09:43:09 +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 ;