mysql根据查询结果批量更新多条数据(插入或更新)
mysql根据查询结果批量更新多条数据(插入或更新)
1.1 前言
mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题。基本上批量插入或新增都会涉及到子查询,mysql是建议不要对需要操作的表放入子查询条件中的,因此我们尽量避免子查询中涉及到需要操作的表,如果无法避免,则可以考虑用连接查询的方式进行。
ERROR 1093 (HY000): You can't specify target table 'dir' for update in FROM clause
1.2 根据查询结果批量更新
- 批量更新另一张表的查询结果:
update
file_directory_info dir
left join
file_directory_temp dirTemp
on
dirTemp.pk_id > 1000
and
dirTemp.dir_category = dir.dir_category
set
dir.parent_id = dirTemp.pk_id,
dir.dir_level = 2,
dir.dir_seq = concat('.',dirTemp.pk_id, dir.dir_seq)
where dir.dir_level is null;
1.3 根据查询结果批量新增
- 直接新增另一张表的查询结果:
insert into
file_directory_info
(pk_id, dir_category, dir_seq, dir_name, parent_id)
select
(dictid + 1000) as pk_id,
dictid as dir_category,
concat('.',(dictid + 1000),'.') as dir_seq,
dictname as dir_name,
0 as parent_id
from dict_entry dict
where dict.dictTypeid = 'HTCM_FILE_CLASSIFICTION' ;
mysql根据查询结果批量更新多条数据(插入或更新)的更多相关文章
- 在UPDATE中更新TOP条数据以及UPDATE更新中使用ORDER BY
正常查询语句中TOP的运用: SELECT TOP 1000 * FROM MP_MemberGrade 随意更新一张表中满足条件的前N条数据: UPDATE TOP (1) MP_Member ...
- Mysql 如何查询两个时间段之间的数据?
Mysql 如何查询两个时间段之间的数据?
- .NET 百万级 大数据插入、更新 ,支持多种数据库
功能介绍 (需要版本5.0.44) 大数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 操作数据库 ...
- 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...
- 09Microsoft SQL Server 表数据插入,更新,删除
Microsoft SQL Server 表数据插入,更新,删除 向表中插入数据 INSERT INTO insert into tb1 values(0004,'张凤凤') insert into ...
- 09Oracle Database 数据表数据插入,更新,删除
Oracle Database 数据表数据插入,更新,删除 插入数据 Insert into table_name(column) values(values); insert into studen ...
- MySQL数据库(四)—— 记录相关操作之插入、更新、删除、查询(单表、多表)
一.插入数据(insert) 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); # 后面的值必须与字段 ...
- 《mysql必知必会》笔记3(插入、更新、删除、创建删除更新表、视图)
十九:插入数据 1:insert语句用来将行插入数据表中,可以插入完整的行.行的一部分.插入多行.插入某些查询的结果. 2:不指定列名,可以这样插入: insert into customers va ...
- mysql使用——sql实现随机取一条数据
最近在做接口测试的时候,测试数据是从数据库查询的,但是当需要并发多次去调用接口时,如果sql只是单纯的进行了limit取值,那并发的时候肯定会每条数据都一样. 因此,研究了下sql随机取一条数据的写法 ...
随机推荐
- [mysql] 修复问题表Table '.xxxx' is marked as crashed and should be repaired
程序执行的过程中,出现 Table '.xxxx' is marked as crashed and should be repaired 错误,上网查了一下,原来是表遭到损坏所致,具体修复办法如 ...
- pycharm远程调试docker容器内程序
文章链接: https://blog.csdn.net/hanchaobiao/article/details/84069299 参考链接: https://blog.csdn.net/github_ ...
- python socket.error: [Errno 24] Too many open files
以openwrt AR9331开发板为例,socket连接到1019个就报错 “python socket.error: [Errno 24] Too many open files” 1.查看开发板 ...
- jQuery配合html2canvas 使用时 报错 Uncaught (in promise) Provided element is not within a Document
报错代码: 这个函数运行时 function download(){ var element = $("#demo"); //jquery 获取元素 //这里将会报错 html2c ...
- Django 2.0 与 Django1.0在内部方法上的差异
models.Customer.tags.rel 方法 对于Django1 可以通过 models.Customer.tags.to.model.objects.all() 获取一个model下的Ma ...
- Python-数据类型之字典
一: 概述 字典是有大括号,逗号分隔,有k/v组成 字典的键必须hashable,如数字,字符串,布尔值,元组 二: 操作 2.1 增 2.1.1 直接赋值 如果键不存在,则增加 dic = {'n ...
- Jmeter4.0+版本If Controller使用
最近需要混合压测, 需要按比例混压多个接口, 需要使用if controller, 直接写比较的函式就是不通, 关于if controller的使用, 网上找了一些资料, 发现在jmeter4.0+版 ...
- java 静态资源访问详解
一.java project项目 如果工程项目是java project的话获取资源文件 1.如果是在本工程根目录下直接访问 FileReader fr = new FileReader(" ...
- IntelliJ IDEA 2018.3.3配置 Tomcat 9,控制台出现中文乱码 “淇℃伅”(2019/01/25)
(win10系统) 全新idea配置全新版本Tomcat突遇 “淇℃伅”,网上大部分解决方案均已失效 似乎是idea与Tomcat命令行输出格式不一致所致,千辛万苦在某一小角落发现这个方法,一针见血, ...
- CyclicBarrier介绍
应用场景 在某种需求中,比如一个大型的任务,常常需要分配好多子任务去执行,只有当所有子任务都执行完成时候,才能执行主任务,这时候,就可以选择CyclicBarrier了. 实例分析 我们需要统计全国的 ...