SQL使用之关联更新、批量插入
- 使用场景
某个字段数据异常,利用另外一张表同步修改该表异常字段的数据;
- 关联更新
UPDATE tableName1 AS t1
LEFT JOIN tableName12 AS t2 ON t1.xx = t2.xx
SET t1.Col = ''
WHERE
t1.Id = 147852
AND t2.`Name` <> ''
当然,也可以使用Inner Join或者Right Join
在实际操作中,还有可能补入相关业务数据来保持数据完整,有以下两种操作方式
- 查询生成数据
INSERT INTO email
SELECT UUID() AS Id,PlayerId AS PlayerId,'00000000-0000-0000-0000-000000000000' AS SendPlayerId,'系统' AS SendPlayerName,'奖励' AS SUBJECT, '恭喜获得奖励。' AS Content,0 AS EmailType,b'0' AS IsReceive,'110' AS Reward,NOW() AS SendTime,500 AS ModuleId,b'0' AS IsDelete,b'0' AS IsRead FROM info WHERE Id=11390 ORDER BY Score DESC LIMIT 0,10;
上面的这种仅适用于可构造新数据,内容可以合成sql,格式、数据都比较单一,但对某些数据动态的、并依靠其他表,这种操作稍显无力。
- 设置列变量,查询另外一张表头的数据,再组装SQL
SET @id:='';
SELECT @id:=Id FROM base_info WHERE type='1';
-- 先删除已有的,覆盖
DELETE FROM info WHERE Id=@id;
INSERT INTO info(Id,Count1,Count2,Count3,Count4,Count5,Time6,Num7,Time8)
VALUES (@id,0,0,0,0,9,NOW(),0,NOW());
SQL使用之关联更新、批量插入的更多相关文章
- SQL中的关联更新和关联删除
在SQL中,经常用到关联查询,比如select a.* from A a inner join B b on a.PId=b.FId where 条件,SQL中也支持类似的关联更新和关联删除. 关联更 ...
- mybatis3批量更新 批量插入
在公司ERP项目开发中,遇到批量数据插入或者更新,因为每次连接数据库比较耗时,所以决定改为批量操作,提升效率.库存盘点导入时,需要大量数据批量操作. 1:数据库连接代码中必须开启批量操作.加上这句,& ...
- SQL Server 大数据量批量插入
private void AddShuJu_Click(object sender, RoutedEventArgs e) { Stopwatch wath = new Stopwatch(); wa ...
- SQL向一个表中批量插入&&删除大量数据
插入: 1. 数据从另一个表中获取 (1)两表结构不一样insert into tb1 需要的列名 select 按照前面写上需要的列名 from tb2(2)两表结构一样insert into tb ...
- Oracle-两表关联更新和插入
需求: 表a(com_name,stock_code,com_sacle,mark,market_location,company_name) 表b(com_name,stock_code,com_s ...
- sql 读取本地txt文件批量插入数据库
--导入 INSERT INTO [netmonsdb].[dbo].[keywordlist]([keyword]) SELECT * FROM OPENROWSET( BULK 'D:/xmsys ...
- Mybatis中实现oracle的批量插入、更新
oracle 实现在Mybatis中批量插入,下面测试可以使用,在批量插入中不能使用insert 标签,只能使用select标签进行批量插入,否则会提示错误 ### Cause: java.sql.S ...
- 使用EF扩展EntityFramework.BulkInsert实现批量插入
EntityFramework 最被人诟病的地方就是它的性能,处理大量数据时的效率.此种条件下,通常会转回使用 ADO.NET 来完成任务.而EntityFramework.BulkInsert则是利 ...
- EF实现批量插入
Z.EntityFramework.BulkInsert EntityFramework 最被人诟病的地方就是它的性能,处理大量数据时的效率.此种条件下,通常会转回使用 ADO.NET 来完成任务.而 ...
随机推荐
- SQL入门(1): 创建/查询/更新/连接/视图/SSMS简介
本文介绍SQL的基本查询语句 (1) select... from * 表示全部, 选择的东西还可以进行简单的运算, 可以列别名 select * from student; -sage from ...
- RSF 分布式 RPC 服务框架的分层设计
RSF 是个什么东西? 一个高可用.高性能.轻量级的分布式服务框架.支持容灾.负载均衡.集群.一个典型的应用场景是,将同一个服务部署在多个Server上提供 request.response 消息通知 ...
- Android - JSON Parser Tutorial
Android provides four different classes to manipulate JSON data. These classes are JSONArray,JSONObj ...
- webpack打包后的文件
用了webpack打包工具,你是不是有时会疑惑,写了一个很简单的函数,结果生成那么多东西,而且还没有问题?下面,我从三种情况来分析打包后的入口文件,帮助自己理解webpack打包,也为平时定位产出目录 ...
- webpack配置antd的按需加载
安装babel-plugin-import插件.下面方法二选一,都可以实现antd的按需加载. 一.配置webpack.config.js文件 { test: /.jsx?$/, exclude: / ...
- Python中os与sys两模块的区别
<os和sys的官方解释> ➤os os: This module provides a portable way of using operating system dependent ...
- BZOJ.4598.[SDOI2016]模式字符串(点分治 Hash)
LOJ BZOJ 洛谷 点分治.考虑如何计算过\(rt\)的答案. 记\(pre[i]\)表示(之前的)子树内循环匹配了\(S\)的前缀\(i\)的路径有多少,\(suf[i]\)表示(之前的)子树内 ...
- (转)InFluxDB数据库使用手册
InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据.而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计 ...
- PYTOGO之旅——环境搭建
Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Windows 安装包下载地址为:https://golang.org/dl/. 如果打不开可以使用这个 ...
- Anaconda基础(一)
目录 Conda常见命令 环境管理 包管理 conda管理 小技巧 Conda常见命令 环境管理 创建环境 conda create -n 环境名 包列表 进入环境 source activate 环 ...