120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  4:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_a45f56_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
120529  7:10:04 [Warning] Invalid (old?) table or database name '#sql7a34_ab74b1_2'
自己写了一个脚本,抓到这2个时间点执行sql如下:
$sql = "insert into product_xxxxxxx(select * from product_inventory_xxxxxxx)";product_inventory_xxxxxxx这个是临时表;
在insert之前有如下sql:1  CREATE TEMPORARY TABLE `product_inventory_xxxxxxx` ".$table_structure;2  然后是一堆insert,upate,大概有15条左右吧。3  insert into product_xxxxxxx(select * from product_inventory_xxxxxxx)";在1和2的时候,没有报错,在3的时候报错了,而且报错之后3还在执行,大概需要70秒执行完毕。

解决方案 »

  1.   

    你的SQL语句是什么
    假设结构一致
    insert into product_xxxxxxx select * from product_inventory_xxxxxxxproduct_inventory_xxxxxxxTEMPORARY不能重复打开
      

  2.   

    临时表有限制:
    在同一个query语句中,你只能查找一次临时表。例如:下面的就不可用  mysql> SELECT * FROM temp_table, temp_table AS t2;  ERROR 1137: Can't reopen table: 'temp_table'  如果在一个存储函数里,你用不同的别名查找一个临时表多次,或者在这个存储函数里用不同的语句查找,这个错误都会发生。
      

  3.   

    所以要检查一下你的SQL语句、SP、UDF之类的
      

  4.   

    product_xxxxxxx  是实体表,product_inventory_xxxxxxx是临时表而已。
      

  5.   

    把你的语句直接在MYSQL的命令行工具下试一下。