데이터베이스 트리거 사용 예제 문제

데이터베이스 트리거는 특정 이벤트가 발생할 때 자동으로 실행되는 저장 프로시저입니다. 이를 사용하여 데이터베이스의 상태를 모니터링하고, 필요한 작업을 수행할 수 있습니다. 이번에는 데이터베이스 트리거를 사용한 예제 문제를 살펴보겠습니다.

문제

주문 정보를 저장하는 orders 테이블이 있습니다. 이 테이블에는 주문 번호(order_id), 주문 날짜(order_date), 주문 상태(order_status) 등의 열이 있습니다. 주문 상태가 '배송준비중'으로 변경될 때마다, 해당 주문의 정보를 shipping 테이블에 자동으로 복사하는 트리거를 만들어보세요.

테이블 구조

orders 테이블

열 이름 데이터 유형
order_id INT
order_date DATE
order_status VARCHAR(20)

shipping 테이블

열 이름 데이터 유형
order_id INT
order_date DATE
order_status VARCHAR(20)

예제 트리거

-- 트리거 생성
CREATE TRIGGER copy_order_to_shipping
AFTER UPDATE ON orders
FOR EACH ROW
BEGIN
  IF NEW.order_status = '배송준비중' THEN
    INSERT INTO shipping (order_id, order_date, order_status)
    VALUES (NEW.order_id, NEW.order_date, NEW.order_status);
  END IF;
END;

위의 예제에서는 orders 테이블이 업데이트될 때마다 해당 테이블의 order_status 값이 '배송준비중'으로 변경되면, shipping 테이블에 해당 주문의 정보를 자동으로 복사하는 트리거를 생성하였습니다.

💡 : 이 예제는 MySQL 문법을 기준으로 작성되었습니다. 다른 데이터베이스 시스템을 사용하는 경우 문법이 약간 다를 수 있으니 참고하시기 바랍니다.

이렇게 트리거를 생성하면 주문 상태가 '배송준비중'으로 변경될 때마다 shipping 테이블에 해당 주문의 정보가 자동으로 추가됩니다.

이와 같이 데이터베이스 트리거를 사용하면 일련의 작업을 자동화할 수 있으며, 데이터의 일관성을 유지하는 데 도움이 됩니다. 다양한 상황에 맞게 트리거를 활용하여 데이터베이스의 기능을 확장할 수 있습니다.

MySQL Trigger 문서

#데이터베이스 #트리거