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

錯誤信息:

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 )

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章