MySQL临时表SELECT COUNT(*)返回不同的结果

时间:2012-01-13 20:10:43

标签: mysql temp-tables

我在mysql中遇到临时表的问题。我创建了这个临时表:

CREATE TEMPORARY TABLE IF NOT EXISTS tmp_general_detalle_entrada_salida (

    numero_registro INT(10), 
    numero_admision INT(10), 
    id_referencia INT(10), 
    facturable CHAR(1), 
    fecha_acceso DATE, 
    cod_via INT(10), 
    anexo2 VARCHAR(40), 
    anexo3 VARCHAR(40), 
    cod_bodega CHAR(3), 
    id_centro_costo INT(10), 
    cod_medico INT(10), 
    cantidad FLOAT(15,2), 
    precio_venta_bruto FLOAT(15,2), 
    descuento FLOAT(15,2), 
    precio_venta_neto FLOAT(15,2), 
    copago FLOAT(15,2), 
    consumido CHAR(1) 

)ENGINE = INNODB;

当我在临时表上执行简单的select count(*) from tmp_general_detalle_entrada_salida时,查询返回随机值(5,4,5,5,0,'表不存在'等)。我正在使用mysql 5.0.51b和PHP 5.2.6。

1 个答案:

答案 0 :(得分:2)

数字的变化使得数据在你的选择之间变异。该表不存在表示您的连接在选择之间关闭。当你的连接关闭时,临时表就会消失。

您可以尝试运行

set global general_log='ON';
set global general_log_file='/tmp/mysql.log'

这将记录连接中的每个查询,以选择/tmp/mysql.log。这将使您更深入地了解服务器所看到的内容。