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