在MySQL3.23中,当你创建一张表时,你可以使用TEMPORARY关键词。如果一个连接死掉,临时表将自动被删除,并且其名字是按连接命名。这意味着,2个不同的连接能使用相同的暂时表的名字而不会彼此冲突或与相同名字的现有数据库表冲突。(现有的表被隐蔽直到临时表被删除)。 在MySQL3.23或以后版本中,你可以使用关键词IF NOT EXISTS以便如果表已经存在不发生一个错误。注意,无法证实表结构是相同的。 

解决方案 »

  1.   

    请问楼上的大哥,那当我把参数TEMPORARY去掉后我上面的程序就可以执行了,这是为什么。你上面的那段解释我有点不明白,暂时好象对我的程序无什帮助。
      

  2.   

    你是用mysql_pconnect()还是mysql_connect() ?
    查询结束后是否用mysql_close()关闭了连接.
      

  3.   

    我用的是mysql_connect()查询完后我并没有关闭数据库,现在我没办法解决的是当用TEMPORARY参数建立的表后为什么不能实现select语句?
      

  4.   

    TMPORARY 错!
    改为TEMPORARY
      

  5.   

    我写在这里错了是TEMPRORARY,但程序里我还是对的。
      

  6.   

    又错了啊!
    TEMPORARY 你把这个复制过去试试以下为测试通过的代码..
    ----------------------
    $conn=mysql_pconnect("xxxx","xxx","xxxx");
    mysql_select_db("test",$conn);
    $sql="CREATE TEMPORARY TABLE a( 
    `bk1` char(5) NOT NULL default '', 
    `bk2` char(5) NOT NULL default '', 
    `` char(50) NOT NULL default '' 
    ) TYPE=MyISAM"; 
    $query1=mysql_query($sql); 
    $sql="select * from a"; 
    $query=mysql_query($sql) or die('error');
    if($query) echo "select is ok!";
    mysql_close($conn);
    ---------------------------
      

  7.   

    呵呵,我搞晕了,这样啦,我用的是mysql_connect的,其他的跟你是一样的,应该没什么差别吧?
      

  8.   

    用mysql_connect();只要不关闭连接,应该是没有差别的.
    mysql_pconnect();是打开一的持续的连接,不能用mysql_close()关闭.我上面的代码中的mysql_close();是没有作用的.