再ETL的时候,经常会遇到列转换的问题,再对照转换中出现多列更新的时候,一下是我总结的一些:
当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,如有必要应比较其与重新建表的效率.
分享到:
相关推荐
更新操作是数据库中最常用的操作之一,下面将为您介绍update语句的三种使用方法,供您参考,希望对您有所帮助
所以当修改它的数据项时,我们不能简单地用dw_1.update()来更新table,我们可以在程序中设置数据窗口可更新的一个表A(及其可更新列),其他表为不可更新,更新完表A后,再设置另一表B为可更新,表A设置为不可更新,...
一个update扩展方法 文档中一种是比较笨的方法 一次只能修改一个列而且受列编辑类型影响(比如number datetime)扩展一次编辑多列,不受编辑类型影响,没有编辑属性也可以。
以下小编给大家列出了三种实现thinkphp批量更新数据的方法,写的不好还请见谅,有意见欢迎提出,共同学习进步! 方法一: //批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式 function batch_...
只需按下所需的列标题。 命令行: HuaweiUpdateExtractor提取输入输出[资料] HuaweiUpdateExtractor改装输入输出配置文件 简介 的的profiles.xml文件被用于识别在update.app文件中的文件。在update.app每个文件...
专栏多列阅读器模式的书签。安装访问并将Columnate链接拖到书签栏以进行安装。用法查找包含长篇文章的网页。 单击“专栏”书签,以重新设置页面的格式,避免干扰。 文章将像报纸一样以狭窄的列格式显示。更新可读...
多仓库更新 批量更新程序包。 当前仅列出哪些软件包已过期。 安装 $ npm install polyrepo-update 用法 从CLI: Usage: polyrepo-update [options] Options: -h, --help Output usage information -v, --version...
首先mysql更新数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = '...如果更新多条数据而且每条记录要更新的值不同,可能很多人会这样写: foreach ($values as $id => $myv
假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%。 在Mysql中我们有几种手段可以...
Solution 2: 修改多个列 update a, b set a.title=b.title, a.name=b.name where a.id=b.id Solution 3: 采用子查询 update student s set city_name = (select name from city where code = s.city_code); 以上...
在 MySQL中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 基础语法 UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表,语法格式为: UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句...
DML-UPDATE 语法 1、修改单表的记录 2、修改多表的记录 文章涉及到的MySQL、SQLyog的配置安装,请参考 MySQL配置+SQLyog安装教程 DML-UPDATE 语法 #修改单表记录 update 表名 set 列=新值,列=新值,... #字符...
例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin。SQL语言中不要显示的出现select关键字 update data d,chanpin c set d.zhulei=c.zhulei,d.xiaolei=c.xiaolei,d.fenxiang=c.fenxiang,...
正如我们之前一节里所讨论的,在GridView中编辑一行时,保存(Update)和取消(Cancel)按钮将取代编辑(Edit)按钮,并且绑定列转换成TextBox。在用户更新了数据并点击保存按钮之后,下述步骤在回传时执行
修改数据(UPDATE) 删除数据(DELETE) 3.6空值的处理 空值的产生 空值的判断 空值的约束条件 3.7视图 定义视图 查询视图 更新视图 视图的作用 ok 我们开始 3.5 数据更新 两种数据插入方式 插入元组 插入子查询结果...
npm-onupdate CLI, 注册表电子邮件通知服务。 服务器端源代码可在找到。 ###安装 > npm install -g npm-onupdate ###用法 ####添加新包警报 $ npm-onupdate add express ####添加多个包裹警报 $ npm-on...
使用 SQLiteDatabase 操作 SQLite 数据库 代码如下:/* Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除...
下拉列表只列出了几种常见的,若需要从中提取图片的分页的链接末尾不符合其中任何一种正则表达式,用户可自行手动输入。 如果不从二级页面中提取图片,只提取指定网页中的图片,分页正则表达式一栏不填或者选择...
分析代码后发现有复合主键的update情况,更新复合主键表时只使用了一个字段更新,同时在事务内又有对该表的insert操作,结果出现了偶发的死锁问题。 比如表t_lock_test中有两个主键都为primary key(a,b) ,但是更新...
语言:English Divi功能更新 今天,我们很高兴为Visual Builder发布新的Divi列选项和改进的列编辑界面。...在这里查看更多详细信息http://bestwordpressthemes2020.com/divi-feature-update-column-options/