出现此原因是由于mysql版本过低,在同一条语句中不支持insert 和 select 同时操作同一张表。在mysql5.0版本之后解决了此问题,可以同时操作同一张表,但是依然不支持在子查询中同时操作同一张表。

在同一张表中进行select 和 insert 操作时,mysql会产生一张临时表,先查询出结果到临时表,然后再插入表本身。当insert 和 select 操作的是同一个临时表时,同样会报mysql-ERROR 1093 INSERT TABLE is not allowed in FROM table list 错误,因为在这种情况下,临时表不能被引用两次。