首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

mysql报错Can't reopen table: 'n'解决方案

2012-07-03 
mysql报错Cant reopen table: n语句如下:CREATE TEMPORARY TABLE tmp_table1(SELECT n.AccountID,n.Cam

mysql报错Can't reopen table: 'n'
语句如下:
CREATE TEMPORARY TABLE tmp_table1(SELECT n.AccountID,n.CampaignID,n.DeviceID,n.MacAddress,n.DeviceIDMD5,n.MacAddressMD5,b.NewType AS DataType FROM tmp_table n,(SELECT DeviceID,MAX(DataType) AS DataType,SUM(DataType) AS NewType FROM lfq_tmp_table GROUP BY DeviceID) b WHERE n.DeviceID = b.DeviceID AND n.DataType = b.DataType); 
其中tmp_table 是一个临时表,里面有数据。

我的目的是从tmp_table 表中按照DeviceID分组过滤重复数据,只保留DataType(int型)最大的那条记录,但是留下来的那条记录的DataType字段要重新设置,设置为 +被滤掉那些数据的DataType的和。

目前执行以上语句时报错:Can't reopen table: 'n'

求解

[解决办法]
MYSQL在1个SQL中,不能2次打开临时表,用物理表不行?
[解决办法]
至少目前版本不行,用物理表
[解决办法]
把tmp_table导入到物理表里就行了
[解决办法]
直接用个普通表,用完后DROP掉,或者truncate掉就行了。
[解决办法]
直接建立普通表,不能两次使用临时表的。

热点排行