답변:
공동 관련 하위 쿼리 (Kerri가 제안한)에 대한 다른 방법은 MERGE 문을 사용하는 것입니다. MERGE 문 은 subselect보다 더 효율적일 수 있습니다 (두 명령문의 실행 계획을 통해서만 확인할 수 있음).
MERGE INTO table_b
USING
(
SELECT id,
field_2
FROM table_a
) ta ON (ta.id = table_b.id)
WHEN MATCHED THEN UPDATE
SET table_b.field_2 = ta.field_2
MERGE
명령문에 대한 유일한 제한 사항은 명령문이 결합 된 컬럼을 갱신 할 수 없다는 것입니다. 즉, ON
절 에서 사용 된 컬럼을 갱신 할 수 없습니다 .
ORA-01555: snapshot too old
tableB의 field_2가 업데이트 될 때마다 tableA를 업데이트하는 트리거를 tableB에 작성할 수 있습니다. 트리거 생성에 대한 자세한 내용은 여기를 확인하십시오-http: //download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm#BABCIBBJ