MySQL can’t specify target table for update in FROM clause

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 翻译:MySQL不能指定更新的目标表在FROM子句 源SQL语句:   [sql] view plain copy    print? delete from t_official_sys_user   where USER_NAME IN(SELECT USER_NAME FROM t_official_sys_user b group by b.

 翻译:MySQL不能指定更新的目标表在FROM子句

源SQL语句:

 

[sql]  view plain  copy
 
 print?
  1. delete from t_official_sys_user  
  2. where USER_NAME IN(SELECT USER_NAME FROM t_official_sys_user b group by b.`USER_NAME` having  count(1) > 1)  



 

执行报以下错误:

 

[sql]  view plain  copy
 
 print?
  1. [SQL]   
  2.   
  3. delete from t_official_sys_user  
  4. where USER_NAME IN(SELECT USER_NAME FROM t_official_sys_user b group by b.`USER_NAME` having  count(1) > 1)  
  5.   
  6. [Err] 1093 - You can't specify target table 't_official_sys_user' for update in FROM clause  



 

解决代码如下:

 

[sql]  view plain  copy
 
 print?
  1. delete from t_official_sys_user  
  2. where USER_NAME IN(
  3. select USER_NAME from
  4.  ( 
  5. SELECT USER_NAME FROM t_official_sys_user b group by b.`USER_NAME` having  count(1) > 1
  6. as temtable 
  7. );  

分析:

先把要删除的目标放到一张临时表再把要删除的条件指定到这张临时表即可。

http://blog.csdn.net/bluestarf/article/details/46622455

 http://www.cnblogs.com/nick-huang/p/4412818.html

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 关系型数据库 MySQL
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表
在阿里云的AnalyticDB MySQL版中使用CREATE TABLE语句来创建内表【1月更文挑战第16天】【1月更文挑战第78篇】
211 3
|
4月前
|
SQL 关系型数据库 MySQL
MySQL UPDATE 更新
MySQL UPDATE 更新
|
5月前
|
Oracle 关系型数据库 MySQL
MySQL复制表结构create table as与like的区别
MySQL复制表结构create table as与like的区别
|
2月前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
MySQL技能完整学习列表5、数据库操作——1、创建数据库和表——2、修改表结构(ALTER TABLE)
183 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
51 0
|
4月前
|
关系型数据库 MySQL
MySQL 报错 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file
MySQL 报错 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file
329 0
|
3月前
|
存储 缓存 关系型数据库
MySQL update执行流程到 redo log深入理解
MySQL update执行流程到 redo log深入理解
49 0
|
3月前
|
JSON 关系型数据库 MySQL
这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
【1月更文挑战第17天】【1月更文挑战第84篇】这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
34 1
|
3月前
|
SQL 关系型数据库 MySQL
MySQL UPDATE 更新
【1月更文挑战第3天】MySQL 使用讲解 第03期
|
4月前
|
关系型数据库 MySQL Linux
远程连接mySQL数据库服务器出现错误号码****:Can‘t connect to mySQL server on ‘192.168.***.***‘ (0)
远程连接mySQL数据库服务器出现错误号码****:Can‘t connect to mySQL server on ‘192.168.***.***‘ (0)
55 0