MariaDB 트리거 사용법: 정의, 생성, 호출, 삭제

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으로 설정합니다.

MariaDB 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;

참고할 만한 사이트

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤