创建一个临时表多次查询报错: Can't reopen table: 'tempUser'
大侠,如何解决?

解决方案 »

  1.   

    为什么是不能重新打开表?
    http://bugs.mysql.com/bug.php?id=10327
    http://www.searchdatabase.com.cn/showcontent_41224.htm
    可以看下
      

  2.   

    楼主你好,
             在同一个query语句中,你只能查找一次临时表。我曾经遇到下面的就不可用
             mysql> SELECT * FROM temp_table, temp_table AS t2;
            系统就会报错:
              ERROR 1137: Can't reopen table: 'temp_table'
      

  3.   

    下面几点是临时表的限制: 
    1、临时表只能用在 memory,myisam,merge,或者innodb 
    2、临时表不支持mysql cluster(簇) 
    3、在同一个query语句中,你只能查找一次临时表。例如:下面的就不可用 
    复制代码 代码如下:mysql> SELECT * FROM temp_table, temp_table AS t2; 
    ERROR 1137: Can't reopen table: 'temp_table' mysql bug地址:http://bugs.mysql.com/bug.php?id=10327 
    如果在一个存储函数里,你用不同的别名查找一个临时表多次,或者在这个存储函数里用不同的语句查找,这个错误都会发生。 
    4、show tables 语句不会列举临时表