MariaDB 트리거 사용법: 정의, 생성, 호출, 삭제
이 글에서는 MariaDB에서 트리거 사용법에 대해 알아봅니다. 트리거의 정의와 사용 목적, 기본 생성, 호출, 삭제 방법을 포함하며, 간단한 예제를 통해 이해를 돕습니다.
트리거란?
트리거는 특정 이벤트가 발생할 때 자동으로 실행되는 데이터베이스 객체입니다. 주로 INSERT, UPDATE, DELETE 명령어가 실행될 때 트리거가 활성화됩니다.
트리거 생성
트리거는 CREATE TRIGGER
명령어를 사용하여 생성할 수 있습니다. 다음은 기본적인 트리거 생성 예제입니다.
INSERT 트리거
DELIMITER //
CREATE TRIGGER before_employee_insert
-- 트리거 이름과 이벤트 유형을 정의합니다 (삽입 전).
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
-- 삽입된 행의 salary 값이 0보다 작은 경우 0으로 설정.
IF NEW.salary < 0 THEN
SET NEW.salary = 0;
END IF;
END //
DELIMITER ;
위 예제는 직원 정보가 삽입되기 전에 실행되며, 새 직원의 급여가 0보다 작을 경우 0으로 설정합니다.
▼ INSERT 트리거 예제 실행 화면

UPDATE 트리거
DELIMITER //
CREATE TRIGGER before_employee_update
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
IF NEW.salary < 0 THEN
SET NEW.salary = 0;
END IF;
END //
DELIMITER ;
위 예제는 직원 정보가 업데이트되기 전에 실행되며, 새 직원의 급여가 0보다 작을 경우 0으로 설정합니다.
DELETE 트리거
DELIMITER //
CREATE TRIGGER before_employee_delete
BEFORE DELETE ON employees
FOR EACH ROW
BEGIN
INSERT INTO employees_audit (employee_id, action, action_time)
VALUES (OLD.id, 'DELETE', NOW());
END //
DELIMITER ;
위 예제는 직원 정보가 삭제되기 전에 실행되며, 삭제된 직원의 정보를 기록합니다.
트리거 호출
트리거는 명시적으로 호출되지 않으며, 지정된 이벤트가 발생할 때 자동으로 실행됩니다. 예를 들어, 위의 INSERT 트리거는 직원 정보가 삽입될 때마다 실행됩니다.
트리거 삭제
트리거를 삭제하려면 DROP TRIGGER
명령어를 사용합니다:
DROP TRIGGER IF EXISTS before_employee_insert;
참고할 만한 사이트
관련 이전 게시글
- MariaDB 데이터베이스 생성 및 삭제 방법
- MariaDB 데이터 추가: INSERT INTO 사용법
- MariaDB 데이터 수정: UPDATE 사용법
- MariaDB 데이터 삭제: DELETE FROM 사용법
- MariaDB 제약 조건: PRIMARY KEY, FOREIGN KEY, UNIQUE 등
이 글이 도움이 되셨다면 공유 부탁 드립니다.