mysql 1093 - You can't specify target table 'xx表' for update in FROM clause
mysql for in 39 Table from can
2023-09-11 14:19:50 时间
为了修复节点表某批次数据的用户数据,做出了以下尝试:
UPDATE zs_work_approval_node SET uid = 4963, name = '苏畅' WHERE id IN (SELECT id FROM zs_work_approval_node WHERE uid = 4967 AND STATUS IN (0, 1, 4));
执行:[Err] 1093 - You can't specify target table 'zs_work_approval_node' for update in FROM clause
百度查询提示得知:
update语句中包含的子查询的表和update的表为同一张表时,报错:1093-You can’t specify target table for update in FROM clause
mysql不允许update目标表和子查询里面的表为同一张表
解决办法: 利用子查询sql可以改变双层的子查询,即可执行成功 (但性能较差,仅仅适合较小的数据量的)
UPDATE zs_work_approval_node SET uid = 4963, name = '苏畅' WHERE id IN (SELECT * FROM ( SELECT m.id FROM zs_work_approval_node m WHERE uid = 4967 AND STATUS IN (0, 1, 4)) AS temp);
相关文章
- 使用 MySQL 慢速查询日志
- MySQL实战系列1:生产标准线上环境安装配置
- MySQL函数
- ubuntu14.04上安装Mysql-5.7.11
- MySQL root修改普通用户密码及Mysql 修改root密码
- MySQL存储函数详解
- mysql 基本语句
- mysql分组用法
- 基于JavaWeb+MySQL 家电售后服务系统【100010560】
- 基Java(SSM)+MySQL框架的 JavaWeb 通用权限管理系统【100010078】
- No suitable driver found for jdbc:mysql://localhost:3306/hibernate_basic
- 转发 可设置skip_name_resolve参数 会出现 ERROR 2005 (HY000): Unknown MySQL server host _mysql ...
- Linux 下安装mysql 链接库
- oracle与mysql的group by语句
- mysql远程连接 Host is not allowed to connect to this MySQL server
- mysql 1449 : The user specified as a definer ('root'@'%') does not exist
- Amoeba for MySQL 非常好用的mysql集群软件
- mysql如何把 一个数据库中的表数据 复制到 另一个数据库中(两个数据库不在同一个数据库链接下)
- mysql Access denied for user 'root'@'localhost' (using password: YES)
- mysql中【update/Delete】update中无法用基于被更新表的子查询,You can't specify target table 'test1' for update in FROM clause.
- 猫眼电影爬取(三):requests+pyquery,并将数据存储到mysql数据库