SQL 트리거 활용 연습문제

이번 글에서는 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 #트리거