oracle – 如何使用同一个表中另外两列的连接来更新列
发布时间:2021-05-25 18:27:49 所属栏目:站长百科 来源:网络整理
导读:我有一个包含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,以便更好地了解如何实施我的建议. (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |