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

熊孩纸 阅读:659 2021-03-31 16:51:01 评论:0

错误信息:

You can’t specify target table for update in FROM clause 错误的意思是:不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。
 

错误SQL语句:

update arch_info set arch_info.reg_no_by ='admin', arch_info.reg_no_date =now() where              
        arch_info.sid in (select a.sid from arch_info a )

解决办法:select的结果再通过一个中间表select多一次,就可以避免这个错误

正确SQL 语句:

update uarch_info set arch_info.reg_no_by ='admin',arch_info.reg_no_date =now() where arch_info.sid in( 
	select sid from( 
		  select a.sid from ucas_arch_info a ) as d )

 

标签:MyBatis
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号