Answers:
共同相关的子查询(由Kerri建议)的另一种方法是使用MERGE语句,该语句可能比子选择更有效(只能通过查看两个语句的执行计划进行验证)。
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上创建一个触发器,该触发器在每次更新tableB上的field_2时都会更新tableA。在此处查看有关创建触发器的更多信息-http: //download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm#BABCIBBJ