이번 글에서는 SQL 트리거를 활용하는 연습문제를 다루어보겠습니다. 트리거는 데이터베이스 이벤트가 발생할 때 자동으로 실행되는 저장 프로시저입니다. 이를 활용하여 데이터의 일관성 유지, 보안 강화, 데이터 변경 로그 등 다양한 용도로 사용할 수 있습니다.
연습문제 1
회사의 직원 정보를 저장하는 employees
테이블과 직원의 급여 정보를 저장하는 salaries
테이블이 있습니다. salaries
테이블에는 각 직원의 연봉 정보가 저장되어 있습니다. 트리거를 사용하여 employees
테이블의 데이터가 변경될 때마다 해당 직원의 연봉 정보를 salaries
테이블에 자동으로 업데이트하는 트리거를 작성해보세요.
CREATE TRIGGER update_salary
AFTER UPDATE ON employees
FOR EACH ROW
BEGIN
UPDATE salaries
SET salary = NEW.salary
WHERE employee_id = NEW.employee_id;
END;
위의 트리거는 employees
테이블이 업데이트될 때마다 해당 직원의 연봉 정보를 salaries
테이블에 자동으로 업데이트합니다.
연습문제 2
도서 대여 정보를 저장하는 rentals
테이블과 도서의 재고 수량을 저장하는 books
테이블이 있습니다. 트리거를 사용하여 rentals
테이블에 도서 대여 정보가 추가될 때마다 해당 도서의 재고 수량을 자동으로 감소시키는 트리거를 작성해보세요. 또한, 도서를 반납할 때마다 해당 도서의 재고 수량을 증가시키는 트리거도 작성해보세요.
CREATE TRIGGER decrease_stock
AFTER INSERT ON rentals
FOR EACH ROW
BEGIN
UPDATE books
SET stock = stock - 1
WHERE book_id = NEW.book_id;
END;
CREATE TRIGGER increase_stock
AFTER DELETE ON rentals
FOR EACH ROW
BEGIN
UPDATE books
SET stock = stock + 1
WHERE book_id = OLD.book_id;
END;
위의 트리거는 rentals
테이블에 도서 대여 정보가 추가 또는 삭제될 때마다 해당 도서의 재고 수량을 자동으로 업데이트합니다.
트리거를 활용하여 데이터의 일관성 유지와 효율적인 데이터 관리를 할 수 있습니다. 적절한 트리거를 작성하여 원하는 기능을 구현해보세요.
References:
#SQL #트리거