`

update多列的几种选择

 
阅读更多

当update 多列 时有如下几种选择
1.)教科书式写法
update t_table a
    set f1=(select f1 from testz b where a.id=b.id),
           f2=(select f2 from testz b where a.id=b.id),
           f3=(select f3 from testz b where a.id=b.id)
    where id=2;

2.)教科书变种
update t_table a
    set (f1,f2,f3)=(select f1,f2,f3 from testz b where a.id=b.id)
    where id=2;
虽然道理和方法1一样,却省了不少事

3.)另类nest table写法
update (select f1,f2,f3 from t_table where id=2)
    set (f1,f2,f3)=(select f1,f2,f3 from testz b where id=2);
此方法虽然比2的代码 量要多一些,但是没有表连接,如果两个表都在id列有主键,速度应该较方法1和方法2快一些.

说明:update是一个耗回滚段,耗重做日志,耗时间,耗成本的操作,尤其是大表的多列update,如有必要应比较其与重新建表的效率

 

本人博客已搬家,新地址为:http://yidao620c.github.io/

分享到:
评论

相关推荐

    mysql update语句的用法详解

    在涉及InnoDB表的多表`UPDATE`中,如果有外键约束,优化器可能会按非预期的顺序处理表,导致语句无效并回滚。同时,`ON UPDATE`功能允许InnoDB表与其他表同步更新,但目前不支持在子查询中更新同一表。 最后,一个...

    程序更新 update

    DELPHI是一种强大的面向对象的编程环境,以其高效的编译器和与Windows API的紧密集成而闻名。 DELPHI程序更新源码可能包含以下几个关键知识点: 1. **版本控制**:在程序更新中,版本控制是非常关键的。它确保用户...

    改变ComboBox下拉高度/强行展开下拉表/自动查询列表/多列下拉框/XP风格Combobox/带图标的ComboBox

    这个主题涵盖了几个关于ComboBox的高级特性和定制方法,包括改变下拉高度、强制展开下拉列表、实现自动查询功能、创建多列下拉框、应用XP风格以及添加图标到ComboBox。 1. 改变ComboBox下拉高度:默认情况下,...

    C#完美可编辑多列含CheckBox的ListView

    在实际开发中,我们可能需要对ListView进行自定义,比如添加多列并支持CheckBox复选功能,同时还要实现数据的编辑功能。下面我们将详细探讨如何在C#中创建一个完美可编辑且包含CheckBox的多列ListView。 首先,我们...

    抓图神器2016 with update 3

    下拉列表只列出了几种常见的,若需要从中提取图片的分页的链接末尾不符合其中任何一种正则表达式,用户可自行手动输入。 如果不从二级页面中提取图片,只提取指定网页中的图片,分页正则表达式一栏不填或者选择...

    Windows Update中找不到Win7 SP1怎么办?.docx

    针对上述问题,我们可以采取以下几种方法来解决: 1. **卸载Win7 SP1 RC**: - 如果您之前安装过Win7 SP1 RC,那么可以通过“程序和功能”中的“查看已安装的更新”来卸载它。 - 在开始菜单的搜索框中输入“查看...

    Mysql 数据库死锁过程分析(select for update)

    解决死锁通常有以下几种策略: 1. **设置超时和自动回滚**:MySQL允许设置事务的超时时间,超过这个时间后,事务会被自动回滚,释放持有的锁,以解除死锁。 2. **死锁检测和回滚**:InnoDB存储引擎内置了死锁检测...

    SAS 中Proc SQL的应用与提高

    SQL作为一种标准语言,主要特点在于它可以无缝连接多个数据库,无需为变量名相同的预处理,且一条SQL语句的输出可以作为另一条SQL语句的输入,从而实现语句的嵌套,提供灵活性和功能的强大性。 标准的SQL语言由四...

    openssh-update-ssh.zip

    3. **升级安装**:用户需要根据操作系统和环境选择合适的升级方法,如使用包管理器(如apt、yum等)或者手动下载源代码编译安装。确保遵循官方提供的升级指南以避免数据丢失或配置错误。 4. **配置调整**:新版本...

    SQL语言—SELECT更新操作

    在本实验中,我们将学习如何使用 SELECT 语句来实现以下几种查询: * 单表查询:从一个表中检索数据。 * 多表查询:从多个表中检索数据。 * 复杂查询:使用多个条件和逻辑操作符来实现复杂的查询。 二、SELECT ...

    MySql避免重复插入记录的几种方法

    注意,如果多列都定义为唯一,使用 `ON DUPLICATE KEY UPDATE` 可能会涉及多个行,这可能会导致不可预测的结果。因此,通常建议只在表的唯一性依赖于单个字段时使用此功能。 总结来说,这三个方法在不同场景下各有...

    4 - Intel USB4 Evaluation Dock BKC Update Manual version12092020

    这个协议不仅提供了高速的数据传输能力,还支持视频和音频信号的无损传输,使得它成为连接外部设备的理想选择,如显示器、硬盘、打印机等。 Intel USB4评估坞站BKC是一个专为开发者和工程师设计的测试平台,用于...

    大数据hive实现原理.zip_hive中怎么更新数据

    在《大数据hive实现原理.pdf》和《hive底层就是mapreduce.txt》中,你将找到更多关于Hive如何利用MapReduce执行查询和更新数据的细节,包括数据的分区策略、优化技巧以及Hive与Hadoop生态系统的交互等内容。...

    table琐行\锁列,已经在项目上大量用上了(只要修改ID就能套上你项目)

    在关系型数据库中,行级锁是一种粒度较细的锁定机制,它允许同一时间多个事务访问表的不同行,提高了并发性能。当一个事务对某一行进行读取、更新或删除操作时,会锁定该行,其他事务则不能进行相同级别的修改操作,...

    linux多路径文档

    在Linux AS4 Update5系统中,多路径软件的安装和配置涉及以下几个关键步骤: 1. **安装多路径软件** - 手动安装多路径软件是必要的,如果系统默认未包含这一组件。首先,需从第四张AS4安装光盘中找到`device-...

    C#开发自动更新工具

    总的来说,"C#开发自动更新工具"是一个集成了网络通信、文件处理、配置管理等多个技术领域的应用,它简化了软件更新的复杂性,为开发者提供了一种高效且易于维护的更新方案。通过深入理解这些关键技术点,开发者可以...

    ORACLE19c数据库性能优化说明.docx

    利用索引来提高效率,有几种策略可以考虑。首先,索引的存储应尽可能小,以减少资源占用。如果索引过大,可以通过`ALTER INDEX <INDEXNAME> REBUILD <TABLESPACENAME>`命令进行重构。其次,Oracle支持两种索引访问...

    VC的自动完成文本框

    3. **多列组合框** - `MultiColumnComboSuggestionBox.zip` 涉及的是一个多列的组合框,可能用于展示更复杂的自动完成建议,比如包含多个属性的条目,如分类和描述。 4. **自动填充** - `AutoFill.zip` 可能包含一...

    listView选项卡动态增加

    ListView有多个视图模式,如Details、SmallIcon、LargeIcon等,其中Details视图模式最适合展示多列数据。在Details视图下,ListView可以有多个列(Columns),每个列可以有自己的标题,而每一行(Items)则对应一组...

    SQL语法大全

    以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 ------------------------------------------------------------- Recordset属性 adOpenForwardOnly adOpenKeyset ...

Global site tag (gtag.js) - Google Analytics