【问题标题】:Update not working in Oracle, 2 tables [duplicate]更新在 Oracle 中不起作用,2 个表 [重复]
【发布时间】:2015-03-15 06:29:24
【问题描述】:

这在 Oracle 中不起作用,请帮助

update mrp_indeksy mrp
inner join indeksy i
on i.indeks_czesci=mrp.indeks_czesci 
set mrp.jest_w_raporcie_pzm='N'
where i.id_grupy='WG' and mrp.kod_uzyskania='P' and i.nazwa_czesci NOT LIKE 'ZAWI%'

【问题讨论】:

标签: sql oracle inner-join


【解决方案1】:

通常在 Oracle 中使用WHERE EXISTS 进行这种类型的更新查询:

UPDATE mrp_indeksy mrp
   SET mrp.jest_w_raporcie_pzm='N'
 WHERE mrp.kod_uzyskania='P'
   AND EXISTS ( SELECT 1 FROM indeksy i
                 WHERE i.indeks_czesci = mrp.indeks_czesci
                   AND i.id_grupy='WG'
                   AND i.nazwa_czesci NOT LIKE 'ZAWI%' )

您可以阅读有关如何进行此类更新的更多信息at this page。除了上面的WHERE EXISTS 方法,您还可以做一个“可更新视图”。但是,您不能将更新与 JOINUPDATE ... FROM 结合使用是无效的 Oracle 语法。

【讨论】:

  • 为什么投反对票...愿意解释一下?
  • 有更多信息链接的有用答案!
猜你喜欢
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多