2015-12-09 71 views
0

任何人都可以告訴我如何在MySQL中將這樣的內容轉換爲Oracle?將更新從MySQL轉換爲oracle

Update table1 t1 
    inner join table t2 on t1.id = t2.t1_id 
    left join table t3 on t2.id = t3.t2_id 
set 
    t1.some_table = 'some_value', 
    t2.some_table = 'some_value', 
    t3.some_table = 'some_value' 
    where t1.id = somevalue 
+2

這是否在MySQL中工作?什麼是't2'&'t3'? – dstudeba

+0

您不能在Oracle中的一個語句中更新三個表。你需要三個獨立的'update'語句。 –

回答

1

在Oracle(和大多數數據庫)中,您需要三個單獨的語句。我想是這樣的:

update t1 
    set t1.some_table = 'somevalue' 
    where t1.id = somevalue; 

update t2 
    set t2.some_table = 'somevalue' 
    where t2.t1_id = somevalue; 

update t3 
    set t3.some_table = 'somevalue' 
    where exists (select 1 from t2 where t2.t1_id = somevalue and t3.t2_id = t2.id) ; 

如果您使用的是join S代表額外的過濾,這可能不是完全正確,但結構是正確的。使用where子句進行過濾。

而且,您可能希望將所有這些包裝在單個事務中,以便全部成功或全部失敗。

+0

太棒了,謝謝 – jay