数据库工作笔记018---MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法
技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152
1.在MySQL中,写SQL语句的时候 ,可能会遇到You can't specify target table '表名' for update in FROM clause这样的错误,它的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中),即不能依据某字段值做判断再来更新某字段的值。
下面的语句会报这个错:
DELETE
FROMsys_roleaccess
WHEREaccess_id IN (SELECTt.access_idFROMsys_roleaccess tWHEREt.access_id NOT IN (SELECTa.access_idFROMsys_access a))
2、问题解决
将SELECT出的结果再通过中间表SELECT一遍,这样就规避了错误。
改成下面这样:可以看到又添加了一层,也就是相当于,临时建一个视图
DELETE
FROMsys_roleaccess
WHEREaccess_id IN (SELECTaccess_idFROM(SELECTt.access_idFROMsys_roleaccess tWHEREt.access_id NOT IN (SELECTa.access_idFROMsys_access a)) t1)
3.注意:
需要注意的是,这个问题只出现于MySQL,MSSQL和Oracle不会出现此问题。
数据库工作笔记018---MySQL 中 You can't specify target table '表名' for update in FROM clause错误解决办法相关推荐
- MySQL 中 You can‘t specify target table ‘表名‘ for update in FROM clause解决办法
废话懒得说了 将SELECT出的结果再通过中间表SELECT一遍,这样就规避了错误. update truth_jt set fee='1' where id in (SELECT j.id from ...
- Mysql You can‘t specify target table ‘表名‘ for update in FROM clause错误解决方案
Mysql You can't specify target table '表名' for update in FROM clause错误解决方案 测试表结构及测试数据 1. 更新 code 开始以 ...
- MYSQL修改报错 You can‘t specify target table ‘表名‘ for update in FROM clause
MYSQL You can't specify target table '表名' for update in FROM clause 解决办法 原始SQL 这是我一开始使用的语句. // An hi ...
- 【mysql 】sql删除重复记录 You can't specify target table '表名' for update in FROM clause
用下面的语句就报语法出错: delete from tab_record where recordid not in (select min(c.recordid) as recordid from ...
- Mysql:You can't specify target table for update in FROM clause的解决办法
You can't specify target table '表名' for update in FROM clause 意思是 不能先select出同一表中的某些值,再update这个表 原SQL ...
- 数据库基础笔记(MySQL)3 —— 基础操作
表操作 表的创建 ( create ) create table 表名 ( 字段1 数据类型,字段2 数据类型 - ) ; 例:create table table_1 ( id int , name ...
- MYSQL之You can't specify target table for update in FROM clause解决办法
MYSQL之You can't specify target table for update in FROM clause解决办法 2016年12月21日 15:24:23 阅读数:19272 这篇 ...
- 数据库基础笔记(MySQL)7 —— 存储引擎和视图 ( 完结撒花 )
存储引擎 实在是学浅才疏,只能大致写点,放篇大佬的,看详细的去吧 传送门 ,等我闲下来学会了再来补充 即一个表存储数据的方式,不同的存储引擎会提供不同的功能,性能等 可以用 engine 指定存储引擎 ...
- 数据库基础笔记(MySQL)5 —— 基础索引
索引 索引是帮助 MySQL 高效获取数据的数据结构,可以在字段上添加,用于提高查询效率( 可以给一个字段添加,也可以给多个字段联合添加 ) 创建索引,就相当于为这个字段中的数据创建一个 B+ 树,如 ...
最新文章
- oracle11G在linux环境下的卸载操作
- 《金蝶ERP—K/3标准财务模拟实训(11.X版)》——第1章 金蝶K/3标准财务介绍 1.1 金蝶K/3标准财务系统介绍...
- OSG官方自带的例子程序简介
- android程序到处apk,导出已安装到手机中程序的apk文件
- mac 没有所有开发者_为什么开发人员应该像产品所有者那样思考
- 项目管理(2):管理过程二
- vba编程把纯文本转换成html,如何在Excel的单元格中将HTML转换为文本?
- springboot(六):如何优雅的使用mybatis
- mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法
- 软件项目管理(学习笔记)
- 华为手机微信小程序上传不了照片
- Bayesian Learning via Stochastic Gradient Langevin Dynamics
- Hbase——练习3
- 【cocos2d-x入门实战】微信飞机大战之八:自定义敌机精灵
- **京东撸货是什么,京东撸货具体怎么玩,能不能赚钱,我来告诉你**
- 暗影精灵双系统(win10和Ubuntu16.04)安装+Cuda和tensorflow安装-深度学习环境配置
- 配置文件App.config 生成和调用的两种方式
- vue.js bootstrap 下拉列表_Excel下拉菜单制作的小技巧
- a^b%c(蒙格马利快速幂模算法)
- 磷酸铁锂锂电池发展现状分析
热门文章
- Android学习笔记(三)——Button之圆角、按压效果、点击事件
- 安装配置 TensorFlow on Android
- Spring MVC提供http接口供下载文件
- VS2008 Qt Designer 中自定义信号槽
- 吴恩达深度学习2.2练习_Improving Deep Neural Networks_Optimization
- 实时计算轻松上手,阿里云DataWorks Stream Studio正式发布
- Linux安全加固--系统相关
- docker必须要sudo,但是sudo的话,又获得不了环境变量怎么办?
- Golang的简明安装指南
- 【bzoj 4455】小星星(树型DP+容斥原理+dfs建树和计算的2种方式)