關於ORACLE的UPDATE更新多表的問題

2021-06-27 00:07:16 字數 910 閱讀 7898

關於oracle的update更新多表的問題

有以下幾種方式可以實現:

一種是:

update table1 

set (field1,field2...) = 

(select field1,field2.... 

from table2 

where table1.field1=table2.field1)

where table1.field1 in (select field1 from table2)

二種是:

將table1,table2相關聯字段建立主鍵primary key 或union key 

update (select table1.field1,table1.field2,table2.field1,table2.field2 

from table1,table2 

where table1.field1=table2.field1)

set table1.table2=table2.table2,

table1.fieldn=table2.tablen,

......

table1的field1和table2的field1將需要建立主鍵或唯一索引才行

三種是:

merge into table1

using table2

on (table1.field1=table2.field1 and ....)

when matched then update set table1.field2=table2.field2,

table1.fieldn=table2.fieldn,

......

when not matched then [doing other thing]

其餘方法可使用游標

關於ORACLE的UPDATE更新多表的問題

關於oracle的update更新多表的問題 有以下幾種方式可以實現 一種是 update table1 set field1,field2.select field1,field2.from table2 where table1.field1 table2.field1 where table1...

關於ORACLE的UPDATE更新多表的問題

關於oracle的update更新多表的問題 有以下幾種方式可以實現 一種是 update table1 set field1,field2.select field1,field2.from table2 where table1.field1 table2.field1 where table1...

關於Update語句的鎖

環境 mssql2005,在read committed級別 語句a begin tran update table set f1 where f2 ttt 更新一行或多行 commit 注意為了看到效果這裡把commit注釋了 語句a影響的行集合為b 該語句造成的影響 1.該語句會阻塞,查詢結果集...