91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Oracle中update和select?關聯操作

發布時間:2022-01-15 15:07:53 來源:億速云 閱讀:271 作者:柒染 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何進行Oracle中update和select 關聯操作,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1、介紹

本文主要向大家介紹了Oracle數據庫之oracle update set select from 關聯更新,通過具體的內容向大家展現,希望對大家學習Oracle數據庫有所幫助。

工作中有個需求,現在新表中有一些數據跟老表的基本一樣,這樣只需要把老表中數據搬到新表中就可以了,同時把不同的字段修改下數據即可,在修改字段時發現,需要指定一個條件,比如主鍵id,來修改某條記錄,這樣一條一條修改效率太低了,有沒有批量操作的方式呢?

goods表:

select gid,code,name,code2 from goods;

如何進行Oracle中update和select?關聯操作

init_goods表:

select code,name,code2 from init_goods;

如何進行Oracle中update和select?關聯操作

2、解決方法

2.1、需求

goods表中code2根據init_goods表中code2更新;

2.2、錯誤演示

下面是一個錯誤的做法:

update goods set code2 = 
(select code2 from init_goods where init_goods.code = goods.code)

goods表數據無法更新,系統會一直卡主,知道崩潰;

2.3、解決方法

方法一:

update goods set code2 = 
(select code2 from init_goods where init_goods.code = goods.code)
where exists (select 1 from init_goods where init_goods.code = goods.code)

方法二:

update goods goods
set goods.code2 = (select init_goods.code2 from init_goods where init_goods.code = goods.code)
where goods.code = (select init_goods.code from init_goods where init_goods.code = goods.code)

注意:修改的列是code2,條件是 code ;

說明:

如果select 子句可以返回多行記錄,但返回適合where條件的記錄是唯一的,否則將會報返回單行的select子句返回多行的錯誤,因為 update只能跟據此處的where子句(內層where)進行相應記錄的匹配更新,一次只能是一條。

上述就是小編為大家分享的如何進行Oracle中update和select 關聯操作了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐陵市| 阜南县| 石首市| 日喀则市| 阳高县| 比如县| 砀山县| 杭锦旗| 汝南县| 科技| 左贡县| 蚌埠市| 班戈县| 萝北县| 奈曼旗| 泰顺县| 临澧县| 福泉市| 河西区| 望奎县| 林口县| 榆树市| 博白县| 定陶县| 霍山县| 河北区| 湘西| 祥云县| 宝丰县| 阿拉善左旗| 阿拉尔市| 宜兰县| 白玉县| 石城县| 车险| 嘉兴市| 富平县| 咸宁市| 牙克石市| 阳山县| 志丹县|