[sql] 트리거와 저장 프로시저의 차이점은 무엇인가?

트리거 (Trigger)

예시

CREATE TRIGGER trg_after_insert
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
  INSERT INTO audit_logs (user, action, timestamp) VALUES (CURRENT_USER, 'INSERT', NOW());
END;

저장 프로시저 (Stored Procedure)

예시

CREATE PROCEDURE sp_employee_insert(IN emp_name VARCHAR(50), IN emp_salary DECIMAL(10,2))
BEGIN
  INSERT INTO employees (emp_name, emp_salary) VALUES (emp_name, emp_salary);
END;

이렇게, 트리거는 데이터 변경 시 자동으로 실행되는 반면에 저장 프로시저는 필요할 때 명시적으로 호출되어 사용됩니다.