2011-08-22 2 views
0

TableA에 대한 업데이트에서 실행되는 트리거가있는 경우 한 업데이트 문에서 TableA의 레코드를 100 개 업데이트하면 문제가 있습니까? 나는 방아쇠가 각 기록을 위해 100 번 달릴 것이라는 점을 의심한다. 그게 맞습니까? 아니면 한 번만 실행됩니까? 한 업데이트 문에서 여러 레코드를 업데이트하면 문제가 발생할 수 있다는 경고를 받았습니다.Oracle 트리거 - 테이블에서 여러 행 업데이트

답변

5

트리거가 FOR EACH ROW으로 정의 된 경우 각 행에 대해 번 업데이트 된 후 번, 즉 총 100 회 발동됩니다. FOR EACH ROW이 아니라면 한 번만 발사됩니다.

2

트리거는 각 레코드에 대해 실행되지만 반드시 문제를 일으키는 것은 아닙니다. 물론, 그것은 방아쇠가 무엇을하는지에 달려 있습니다.

경우에 따라서는 영향을받는 레코드의 ID가 컬렉션을 채우기 위해 EACH ROW 트리거 모음

  • 에게 BEFORE UPDATE를 초기화하기 위해 여러 트리거

    1. g 전 UPDATE 트리거를 사용할 수 있습니다
    2. 수집 된 ID를 처리하기위한 AFTER UPDATE 트리거
  • 관련 문제