MySQL에서 트리거(Trigger)는 데이터베이스의 특정 이벤트가 발생할 때 자동으로 실행되는 작업을 정의하는 객체입니다.
트리거를 사용하면 데이터 변경 작업을 모니터링하고, 필요한 추가 작업을 자동으로 수행할 수 있습니다.
다음은 MySQL 트리거에 대한 자세한 설명과 예시입니다:
1. 트리거의 개념:
- 트리거는 데이터베이스의 특정 테이블에 대한 이벤트(INSERT, UPDATE, DELETE 등)가 발생할 때 자동으로 실행되는 작업입니다.
- 트리거는 특정 조건을 충족하는 경우에만 실행되며, 데이터 변경 작업을 모니터링하고 추가 작업을 수행할 수 있습니다.
2. 트리거의 종류:
- MySQL에서는 세 가지 종류의 트리거를 지원합니다: BEFORE, AFTER, INSTEAD OF 트리거.
- BEFORE 트리거는 데이터 변경 전에 실행되는 트리거로, 변경 전의 상태를 확인하거나 수정할 수 있습니다.
- AFTER 트리거는 데이터 변경 후에 실행되는 트리거로, 변경 후의 상태를 확인하거나 추가 작업을 수행할 수 있습니다.
- INSTEAD OF 트리거는 뷰(View)에 대한 트리거로, 데이터 변경 작업이 뷰에 수행될 때 실행되는 작업을 정의합니다.
3. 트리거의 사용 단계:
- 트리거를 사용하는 과정은 다음과 같습니다:
1) 트리거를 생성하기 전에 작업할 테이블을 정의해야 합니다.
2) `CREATE TRIGGER` 문을 사용하여 트리거를 생성합니다. 트리거는 특정 이벤트와 조건을 지정하여 정의됩니다.
3) 트리거의 본문에서는 SQL 문을 사용하여 추가 작업을 수행합니다.
4. 예시:
- 다음은 주문 테이블에 새로운 주문이 삽입될 때 자동으로 재고를 감소시키는 트리거의 예시입니다:
DELIMITER //
CREATE TRIGGER decrease_inventory
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
DECLARE product_id INT;
DECLARE quantity INT;
-- 주문된 상품 ID와 수량 가져오기
SET product_id = NEW.product_id;
SET quantity = NEW.quantity;
-- 상품 재고 감소
UPDATE products SET stock = stock - quantity WHERE id = product_id;
END //
DELIMITER ;
위의 예시에서는 `decrease_inventory`라는 트리거를 생성합니다.
이 트리거는 `orders` 테이블에 새로운 주문이 삽입될 때마다 실행됩니다.
트리거 본문에서는 주문된 상품의 ID와 수량을 가져와서 해당 상품의 재고를 감소시킵니다.
트리거를 사용하면 데이터베이스 작업을 자동화하고 데이터 일관성을 유지할 수 있습니다.
특정 이벤트가 발생할 때 자동으로 추가 작업을 수행함으로써 개발자의 부담을 줄일 수 있습니다.
'SQL > MYSQL' 카테고리의 다른 글
[MYSQL] 스크립트 언어 개요와 HTML 문법에 대해 (0) | 2023.06.27 |
---|---|
[MYSQL] 웹 사이트 개발 환경 구축에 대해 (0) | 2023.06.27 |
[MYSQL] 파티션 (0) | 2023.06.27 |
[MYSQL] 전체 텍스트 검색 방법 (0) | 2023.06.19 |
[MYSQL] 커서 사용 방법 (0) | 2023.06.15 |
[MYSQL] 스토어드 함수 사용 방법 (0) | 2023.06.15 |
[MYSQL] 스토어드 프로시저 사용 방법 (0) | 2023.06.15 |
[MYSQL] 인덱스가 필요한 경우와 필요 없는 경우 (0) | 2023.06.15 |