天天看点

MySQL 语法问题:You can‘t specify target table ‘xxx‘ for update in FROM clause. 原因及解决方法

报错信息如下:

[Code: 1093, SQL State: HY000] You can’t specify target table ‘bd_bankaccbas’ for update in FROM clause

译文:

不能在 FROM 子句中指定目标表 ‘bd_bankaccbas’ 进行更新。

有问题的 SQL 语句如下,它在 oracle 数据库的语法是支持的,但是 mysql 就不支持直接这么写: from 和 update 都是同一张表。

update bd_bankaccbas set modifier = 
(select creator from bd_bankaccbas where accnum = '88004') 
where accnum = '88004';      

解决方法:

我们在中间加个过渡就好了。

update bd_bankaccbas set modifier = 
(select t.creator from (select creator from bd_bankaccbas where accnum = '88004') t) 
where accnum = '88004';      

喜欢的点个赞❤吧!