<insert id="insertSdbBasicInfoTrading">
insert into sdb_basic_info_trading(info_source,info_source_name,trading_id,trading_name,bn_type)values(
(select t1.infoSource from (select (case when MAX(info_source) is null then 1 else MAX(info_source) + 1 end) as infoSource from sdb_basic_info_trading) as t1),
#{infoSourceName},
(select t2.tradingId from (select (case when max(trading_id) is null then 1 else max(trading_id)+1 end ) as tradingId from sdb_basic_info_trading) as t2),
#{tradingName},
#{bnType}
);
</insert>
注意:You can't specify target table 'sdb_basic_info_trading' for update in FROM clause
mysql出现You can’t specify target table for update in FROM clause 这个错误的意思是不能在同一个sql语句中,先select同一个表的某些值,然后再update这个表。
解决办法
解决方法:select的结果再通过一个中间表select多一次,就可以避免这个错误
我在sql中已经做过了处理,可以直接通过