加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 怎样行使统一个表中其它两列的毗连来更新列

发布时间:2021-05-25 06:20:57 所属栏目:站长百科 来源:网络整理
导读:我有一个包括3列a,b和c的表.我想知道怎样更新第三列的值与每行中两个其他列的毗连. before update A B c -------------1 42 53 6after update A B c -------------1 4 1_42 5 2_53 6 3_6 我奈何才气在oracle中这样做? 起首,您违背了类型化法则.你必需从头考

我有一个包括3列a,b和c的表.我想知道怎样更新第三列的值与每行中两个其他列的毗连.

before update
 A    B    c 
-------------
1     4
2     5
3     6

after update
 A    B    c 
-------------
1     4    1_4
2     5    2_5
3     6    3_6

我奈何才气在oracle中这样做?

起首,您违背了类型化法则.你必需从头思量计划.假如您有表列中的值,那么要得到计较值,您只必要一个select语句来获取您想要的功效.存储计较值凡是是一个坏主意,并被以为是一个糟糕的计划.

无论怎样,

由于你是11g,假如你真的想要一个计较列,那么我提议行使VIRTUAL COLUMN而不是手动更新列. UPDATE语句涉及许多开销.行使假造列可以镌汰大量开销.另外,您将完全挣出手动事变和那些代码行来举办更新. Oracle为您完成事变.

虽然,您将在假造列子句中行使沟通的毗连前提.

就像是,

Column_c varchar2(50)GENERATED ALWAYS AS(column_a ||’_’|| column_b)VIRTUAL

留意:行使时有一些限定.因此,请在实验之俏拷寮文档.可是,对付OP提供的简朴用例,假造列是直接拟合的.

更新我做了一个小测试.险些没有调查到.请阅读此question,以便更好地相识怎样实验我的提议.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读