
트리거(Trigger)는 데이터베이스에서 특정 이벤트가 발생할 때 자동으로 실행되는 규칙입니다. 주로 INSERT, UPDATE, DELETE 같은 데이터 변경 작업이 일어날 때 실행되며, 이를 통해 데이터 무결성 유지나 자동화 작업을 처리하는 데 유용합니다.
자동 실행
트리거는 특정 조건이 충족되면 사용자가 명시적으로 실행하지 않아도 자동으로 실행됩니다.
무결성 유지
데이터베이스에서 트리거를 사용하여 데이터 무결성을 유지하거나, 특정 데이터 변경에 대한 기록을 남길 수 있습니다.
이벤트 기반
트리거는 테이블 단위로 설정되며, 데이터 변경 이벤트(INSERT, UPDATE, DELETE)에 반응하여 동작합니다.
BEFORE 트리거: 데이터 변경 작업 이전에 실행됩니다. 데이터가 변경되기 전에 유효성 검사를 하거나 특정 로직을 적용할 수 있습니다.
AFTER 트리거: 데이터 변경 작업 후에 실행됩니다. 데이터가 변경된 후 관련된 작업을 처리하거나 로그를 기록할 때 사용됩니다.
CREATE TRIGGER before_insert_employee
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
IF NEW.salary < 0 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Salary cannot be negative';
END IF;
END;
위 트리거는 employees 테이블에 데이터가 삽입될 때 salary가 0보다 작은 경우 에러를 발생시키는 BEFORE 트리거입니다.
트리거는 데이터베이스에서 자동화와 데이터 무결성 유지를 위한 강력한 도구입니다. 하지만, 너무 많은 트리거 사용은 성능 저하를 유발할 수 있으므로 신중히 사용해야 합니다! 😊