더북(TheBook)

코드 2-18은 이것과 동일한 동작을 하는 트리거를 생성하는 방법이다.

코드 2-18 자식 테이블의 길 잃은 레코드를 방지하는 트리거 생성

CREATE TRIGGER DelCascadeTrig

  ON Orders

  FOR DELETE

AS

  DELETE Order_Details

  FROM Order_Details, deleted

  WHERE Order_Details.OrderNumber = deleted.OrderNumber;


 

앞에서 언급했듯이 DRI 접근법은 트리거보다 빠르게 수행되며 더 효율적이다.

BETTER WAY 5에서 설명했듯이 트리거는 자동으로 값을 계산하는 데도 사용할 수 있다. 예를 들어 코드 2-19는 SQL Server에서 Order_Details 테이블 값이 변할 때마다 트리거를 이용해 Orders 테이블의 OrderTotals 컬럼 값을 변경하는 예제이다.

Note ≣

코드 2-19는 SQL Server용 구문이다. 다른 DBMS용 코드는 https://github.com/gilbutITbook/006882를 참고하자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.