You can‘t specify target table xxx‘ for update in FROM clause,错误明显mysql报错尽量不应该在增删改的里面用查询语句,如果用的话,应该搞一个临时包裹下。
解决方法:select的结果再通过一个中间表select多一次,就可以避免这个错误 UPDATEtable_nameSETfield_type=NULLWHEREidIN(SELECTa.idFROM(SELECTidFROMtable_nameWHEREfield_type=1) a )
一、bug描述 You can't specify target table 'CUP_TEST_CLASS_LIST' for update in FROM clause 翻译一下: 不能在FROM子句中指定更新的目标表’CUP_TEST_CLASS_LIST’ 白话一下: 不能先select出同一表中的某些值,再update这个表(在同一语句中) 二、需求描述 有一张表,想要改变某一列中的某些字段的数据。
一、发现问题 在一次准备处理历史数据sql时,出现这么一个问题:You can't specify target table '表名' for update in FROM clause,大致的意思就是:不能在同一张表中先select再update。 在此进行一下复盘沉淀,使用测试sql复现当时的场景(mysql是8版本),准备测试数据: CREATE TABLE `student` ( `id` int NOT ...
You can’t specify target table ‘xxxxxxxxxxxx’ for update in FROM clause 出问题的SQL DELETEFROMtable1WHEREc1IN(SELECTtable1.c1FROMtable1 inner join table2 on table1.id = table2.idWHEREc2='xxxx') 修改方案1(标准SQL方案):在where中包一层。
You can't specify target table '表名' for update in FROM clause 翻译为:不能先select出同一表中的某些值,再update这个表(在同一语句中) 实例: 表:result 表result 表student 表student 表:grade 表grade 要求:给大一成绩不合格的分数加5分 思路: ...
怎么处理呢,很简单,将查询结果加多一个别表名再进行查询即可,如下 DELETEFROMwork_item_role_permissionWHEREid IN(SELECTresult.id FROM(SELECTt.id FROM(SELECTt1.id,t1.permission_code,t1.work_item_role_idFROMwork_item_role_permission t1WHERE(SELECTCOUNT(*)FROMwork_item_role_permissionWHEREpermission_co...
错误消息 "you can't specify target table 'sys_menu' for update in from clause" 通常出现在使用 MySQL 数据库时,尝试在同一个查询中既对 sys_menu 表进行更新操作(UPDATE),又在该查询的 FROM 子句中引用同一个表作为数据源。MySQL 不允许在 FROM 子句中直接引用正被更新的表,因为这会导致操作不明确或...
)a ) 执行成功 原因 You can't specify target table for update in FROM clause含义:不能在同一表中查询的数据作为同一表的更新数据。 因此将select出的结果再通过中间表select一遍,这样就可以了。 发布于 2021-03-16 11:08 MySQL 赞同添加评论 分享喜欢收藏申请转载 ...
在执行 mysql 语句时,出现1093 - You can't specify target table 'daily_job' for update in FROM clause 二、错误原因 出现1093 - You can't specify target table 'daily_job' for update in FROM clause这个错误,它表面的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。