1.mysql中插入语句报错:[Err] 1093 - You can't specify target table 'iot_attr' for update in FROM clause
不能先select出同一表中的某些值,再update这个表(在同一语句中)
insert into iot_attr(attr_id,attr_code,attr_name)
values((select max(attr_id)+1 from iot_attr),'exp_base_country','baseCountry');
上述SQl执行时报错,改成下面的sql即可:
insert into iot_attr(attr_id,attr_code,attr_name)
values((select aid from(select max(attr_id)+1 aid from iot_attr) t),'exp_base_country','baseCountry');
将select出的结果再通过中间表select一遍,这样就规避了错误。这个问题只出现于mysql,oracle中没有这个问题。