You can't specify target table '表名' for update in FROM clause”解决方法

Posted zxhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了You can't specify target table '表名' for update in FROM clause”解决方法相关的知识,希望对你有一定的参考价值。

You can‘t specify target table ‘表名‘ for update in FROM clause

翻译为:不能先select出同一表中的某些值,再update这个表。

错误语句:

update w_workitems ww set ww.endTime = ww.createTime where ww.gid in(
select * from a_travel a ,w_workitems b where a.instance_id = b.instanceId and a.apply_status = ‘2‘
and a.id>‘202001‘ and b.endTime is null ORDER BY b.createTime desc;

修改后:

UPDATE w_workitems ww
SET ww.endTime = ww.createTime
WHERE
ww.gid IN (
SELECT
aa.gid
FROM
(
SELECT
b.*
FROM
a_travel a,
w_workitems b
WHERE
a.instance_id = b.instanceId
AND a.apply_status = ‘2‘
AND a.id > ‘202001‘
AND b.endTime IS NULL
ORDER BY
b.createTime DESC
) aa
);

以上是关于You can't specify target table '表名' for update in FROM clause”解决方法的主要内容,如果未能解决你的问题,请参考以下文章

You can't specify target table 'table' for update in FROM clause

You can't specify target table 'xxx' for update in FROM clause

mysql You can't specify target table 'xxx' for update in FROM clause的解决

You can't specify target table 't_mail_marketing' for update in FROM clause

You can't specify target table '表名' for update in FROM clause”解决方法

You can't specify target table 'e' for update in FROM clause