Oracle 之update
1、根据条件更新表里的某个字段值,如下:update test t set t.b_salary =case when t.b_id = 5 then 5000 when t.b_id = 6 the
1、根据条件更新表里的某个字段值,如下:
update test t set t.b_salary =
case when t.b_id = 5 then 5000
when t.b_id = 6 then 6000
when t.b_id = 7 then 7000
end
where t.b_id in (5,6,7)
说明: where条件部分一定要把记录限制为只需要更新的部分,否则其他部分会被更新为空。
2、2表关联update某个字段的
a)、一对一关联
update test1 t set t.a_salary =
( select a.b_salary from test a where a.b_id = t.a_id
)
where exists (select 1 from test a where a.b_id = t.a_id )
;
commit;
b)、一对多关联
(1)、目标表一个ID存在多条记录,源头是一个ID存一条记录,此种场景和一对一没有区别
update test1 t set t.a_salary =
( select a.b_salary from test a where a.b_id = t.a_id
)
where exists (select 1 from test a where a.b_id = t.a_id )
;
commit;
(2)、目标表一个ID一条记录,源头是一个ID存在多条记录
报错ora-01427 :单行子查询返回多条记录
本质上是目标表在源表根据关联ID去找的时候,一个ID找到了多条记录,返回给目标表的一条记录里目标值为多个。
若返回多个记录值都是一样的,返回任意一条都可以,则此时对返回值加上max,写法如下:
update test1 t set t.a_salary =
( select max(a.b_salary) from test a where a.b_id = t.a_id
)
where exists (select 1 from test a where a.b_id = t.a_id )
c)、多对多关联
报错ora-01427 :单行子查询返回多条记录
本质上是目标表在源表根据关联ID去找的时候,一个ID找到了多条记录,返回给目标表的一条记录里目标值为多个。
若返回多个记录值都是一样的,返回任意一条都可以,则此时对返回值加上max,写法如下:
update test1 t set t.a_salary =
( select max(a.b_salary) from test a where a.b_id = t.a_id
)
where exists (select 1 from test a where a.b_id = t.a_id )
;
commit;
说明: exists的作用,防止更新没有关联上的记录。若不加exists ,则目标表中无关记录会被置空。故这个exists一定要加上。
总结:
1、对于更新表内容,一定要把更新内容限制在只要更新的部分,where部分一定要有。
2、2表关联update的时候,目标表根据关联ID从源表去找记录的时候,,存在ID重复的记录和目标表没有关系,要注意源表存在ID重复的记录。
对于大表关联update,普通的写法,根本跑不动,百度了一下,根据rowid来更新,果然可以跑动。方法如下:
--t1 为源表
--t2 为要更新的目标表
declare
cursor cur is
select
a.t1_name, b.rowid row_id
from t1 a, t2 b
where a.t1_id = b.t2_id
order by b.rowid;
v_counter number;
begin
v_counter := 0;
for row in cur loop
update t2 t
set t.t2_name = row.t1_name
where rowid = row.row_id;
v_counter := v_counter + 1;
if (v_counter >= 1000) then
commit;
v_counter := 0;
end if;
end loop;
commit;
end;
相关阅读:
Oracle update执行计划原理解析与优化
Oracle 中 update nowait 的使用方法
Oracle存储过程使用实例之update的使用
Oracle update关联表的思路总结
Oracle for update of 和 for update区别

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









2025年、グローバルデジタル仮想通貨取引プラットフォームは、トランザクションのボリューム、セキュリティ、ユーザーエクスペリエンスなどの指標に基づいて、2025年に世界のトップ10のデジタル通貨取引プラットフォームを激しく競争しています。 OKXは、強力な技術的強さとグローバルな運用戦略で最初にランクされており、Binanceは高流動性と低料金に密接に続きます。 Gate.io、Coinbase、Krakenなどのプラットフォームは、それぞれの利点がある最前線にいます。このリストには、Huobi、Kucoin、Bitfinex、Crypto.com、Geminiなどの取引プラットフォームがそれぞれ独自の特徴がありますが、投資は注意する必要があります。プラットフォームを選択するには、セキュリティ、流動性、料金、ユーザーエクスペリエンス、通貨選択、規制コンプライアンスなどの要因を考慮し、合理的に投資する必要があります

素因数分解 - 整数理論では、正の整数の素因数は、その整数を正確に割る素数です。これらの数を見つけるプロセスは、整数因数分解、または素因数分解と呼ばれます。例 - 288 の素因数は: 288=2x2x2x2x2

トップ10のデジタル通貨取引プラットフォーム:1。OKX、2。BINANCE、3。GATE.IO、4。HuobiGlobal、5。Kraken、6。Coinbase、7。Kucoin、8。Bitfinex、9。Crypto.com、10。Gemini、これらの交換は、ユーザーがユーザーを選択できます。

トップ10の仮想通貨取引プラットフォームのランキング(2025年の最新): Binance:グローバルリーダー、高い流動性、規制が注目を集めています。 OKX:大規模なユーザーベース、複数の通貨をサポートし、レバレッジされた取引を提供します。 gate.io:さまざまなフィアット通貨支払い方法を備えた上級交換は、さまざまな取引ペアと投資商品を提供します。 Bitget:デリバティブ交換、高流動性、低料金。 Huobi:さまざまな通貨と取引ペアをサポートする古い交換。 コインベース:厳密に規制されている有名なアメリカの交換。 フェメックスなど。

この記事では、10個のデジタル通貨トレーディング。プラットフォームを選択する際には、セキュリティ、流動性、取引料、通貨選択、ユーザーインターフェイス、カスタマーサービスサポート、規制コンプライアンスなどの要因を考慮し、リスクを慎重に評価し、盲目的にトレンドに従うことはありません。

この記事では、Binance、Okx、Gate.io、Huobi Global、Coinbase、Kucoin、Kraken、Bitfinexなどの主流のデジタル通貨取引プラットフォーム向けのAndroidおよびAppleモバイルアプリのダウンロード方法を提供しています。 AndroidユーザーであろうとAppleユーザーであろうと、対応するプラットフォームの公式アプリのダウンロードリンクを簡単に見つけて、手順に従ってインストールを完了することができます。 この記事では、それぞれの公式Webサイトまたはアプリストアでの検索とダウンロードに関する詳細なガイダンスを提供し、AndroidにAPKファイルをインストールするための特別な手順に関する指示を提供して、ユーザーが迅速かつ簡単にダウンロードして使用できるようにします。

信頼できるデジタル通貨プラットフォームには、1。OKX、2。GATE.IO、4。HuobiGlobal、6。Coinbase、7。Bitfinex、9。Crypto.com、10。Geminiが顧客を選択することができます。

トップの仮想通貨プラットフォームは次のとおりです。 ランキングは、プラットフォームの流動性、通貨の選択、セキュリティ、ユーザーエクスペリエンス、取り扱い料、コンプライアンスなどの包括的な考慮事項に基づいていますが、参照のみがお客様の責任である必要があります。
