麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

在Oracle數(shù)據(jù)庫中同時(shí)更新兩張表的簡單方法

2024-08-29 13:58:33
字體:
供稿:網(wǎng)友

這篇文章主要介紹了在Oracle數(shù)據(jù)庫中同時(shí)更新兩張表的簡單方法,同時(shí)介紹了一種差異性合并更新的方法,需要的朋友可以參考下

以前只會(huì)寫一些簡單的updaet語句,比如updae table set c1='XXX' 之類的

今天遇到一個(gè)數(shù)據(jù)訂正的問題,項(xiàng)目背景如下,有個(gè)表A,有兩個(gè)字段a1,a2還有一個(gè)關(guān)聯(lián)表B,其中也有兩個(gè)字段,b1和b2。其中a2和b2是關(guān)聯(lián)的,想把A中的字段a1更新成B中的b1

理論上sql應(yīng)該挺好寫的,但是在oralce中實(shí)現(xiàn)了半天一直報(bào)語法錯(cuò)誤。而且確實(shí)還有些小小細(xì)節(jié)沒有注意到。

首先上測試數(shù)據(jù)

表1,ZZ_TEST1

在Oracle數(shù)據(jù)庫中同時(shí)更新兩張表的簡單方法

表2,ZZ_TEST2

在Oracle數(shù)據(jù)庫中同時(shí)更新兩張表的簡單方法

要把表一的text更新成表二的text1值,對應(yīng)的sql如下:

 

 
  1. update ZZ_TEST1 t1 set t1."text" = ( 
  2. select T2."text1" from ZZ_TEST2 t2 where T2."pid"=t1."id" 
  3. )  
  4. WHERE EXISTS 
  5. SELECT 1 FROM ZZ_TEST2 t2 where T2."pid"=t1."id" 

后面的where條件表示一個(gè)限制條件,只更新那些符合條件的數(shù)據(jù),也可以寫成

 

 
  1. update ZZ_TEST1 t1 set t1."text" = ( 
  2. select T2."text1" from ZZ_TEST2 t2 where T2."pid"=t1."id" 
  3. where t1."id" in (select "pid" from ZZ_TEST2 ) 

另外還有一種merge的寫法,對應(yīng)的sql如下:

 

 
  1. merge into ZZ_TEST1 t1 using ZZ_TEST2 t2 on (t1."id" =t2."pid")  
  2.  
  3. when matched then 
  4.  
  5. update set t1."text"=t2."text1" 

為了避免T2中有多條數(shù)據(jù)對應(yīng)T1中的數(shù)據(jù),可以把sql改成如下的方式:

 

 
  1. MERGE INTO ZZ_TEST1 t1 USING  
  2. (  
  3. SELECT * FROM ZZ_TEST2 X WHERE X. ROWID =  
  4. (SELECT MAX(Y.ROWID) FROM ZZ_TEST2 Y WHERE X."id" = Y."id" ) 
  5. )  
  6. t2  
  7. ON (t1."id" = t2."pid")  
  8. WHEN MATCHED THEN 
  9. UPDATE SET t1."text" = t2."text1" 

還有一種update from 的語法,經(jīng)過測試在oracle和mysql中不適用

總結(jié)一下,項(xiàng)目中嘗嘗需要把一張表的字段更新到另一張表中的某一個(gè)字段。可以使用update語法,并要做好限定。會(huì)使用merge的語法,另外還有一種merge的語法也可以,update from 不能再oracle和mysql中使用。


注:相關(guān)教程知識(shí)閱讀請移步到oracle教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产91丝袜在线播放 | 欧美成年性h版影视中文字幕 | 日韩欧美精品电影 | 中文字幕在线观看视频www | 最新在线黄色网址 | 亚洲一区二区三区视频免费 | 欧美成人一区二区三区 | 久久久久一区二区三区 | 香蕉久久久久 | 国产噜噜噜噜噜久久久久久久久 | 久久久久九九九女人毛片 | 手机黄色小视频 | 91精品国产成人 | 在线视频 亚洲 | 国内免费视频成人精品 | 一区二区久久精品66国产精品 | 国产午夜亚洲精品理论片大丰影院 | 欧美 videos粗暴 | 亚洲第一成av人网站懂色 | 精品亚洲午夜久久久久91 | 久久国产一级片 | 毛片在线视频在线播放 | 自拍偷拍亚洲图片 | 精品亚洲视频在线 | 一级做受毛片免费大片 | 色综合视频 | 一级黄色欧美 | 免费黄色大片网站 | 欧美一级高清片在线 | 亚洲国产精品久久久久久久久 | 97超视频在线观看 | 中文在线观看www | 国产精品久久久久久久娇妻 | 欧美精品免费一区二区三区 | 九九综合视频 | 91精品国产综合久久婷婷香蕉 | 中文字幕综合在线观看 | 亚洲精品午夜在线 | 国产亚洲精品久久久久婷婷瑜伽 | 高清成人在线 | 成人电影毛片 |