Oracle:如何更新来自不同表的多个列?

新手上路,请多包涵

我正在使用 oracle 数据库并且有一种情况来更新其他一些表中的字段。我的问题是它正在更新所有记录而不是指定条件。例如,我正在尝试从 ADDRESS 表更新 EMPLOYEE 表中的 perm_address 和 temp_address。现在,我正在使用以下查询。但是,它正在更新所有记录。

 UPDATE EMPLOYEE EMP
     SET (EMP.PERM_ADDRESS, EMP.TEMP_ADDRESS) =
          (SELECT ADDR.PERM_ADDR,ADDR.TEMP_ADDR
           FROM ADDRESS ADDR
           WHERE ADDR.ID=EMP.ADDRESS_ID
          );

在Oracle中如何处理这种情况?通常,如何处理从多个表到源表的更新?

提前致谢….

原文由 Sivaraj Thavamani 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 726
1 个回答

用另一个表更新一个表 - 基本格式是

--ORACLE
update tableX t set (t.fldA, t.fldB) =
(select fldA, fldB from table_B where ID ='X')
where t.ID = 'Y'

原文由 Jenna Leaf 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进