MYSQL临时表关联Can't reopen table,

这是由于

Quotation

使用临时表的诸多限制

引擎类型只能是:memory(heap)、myisam、merge、innodb

不支持mysql cluster

同一个查询语句中只能引用一次! 如 SELECT * FROM TP_TABLE , TP_TABLE AS ALIAS_NAME;  是错误的

同一个用户存储函数中只能引用一次!

show tables 不会显示临时表

不能使用rename重命名临时表。只能使用ALTER TABLE OLD_TP_TABLE_NAME RENAME NEW_TP_TABLE_NAME;

影响使用replication功能

报错实例

#创建临时表1

DROP TEMPORARY TABLE IF EXISTS `temp_info1`;

CREATE TEMPORARY TABLE `temp_info1`(

tid           INT auto_increment -- 自增列

,starttime      VARCHAR(20)        -- 开始时间

, PRIMARY KEY(tid)

);

DROP TEMPORARY TABLE IF EXISTS `temp_info2`;

CREATE TEMPORARY TABLE `temp_info2`(

tid           INT auto_increment -- 自增列

,starttime      VARCHAR(20)        -- 开始时间

, PRIMARY KEY(tid)

);

#debug 以下会报错

/*

SELECT a.starttime

FROM temp_info1 AS a

INNER JOIN temp_info1 AS b ON b.tid=a.tid;

*/

#正确--曲线救国

-- 复制一份

INSERT temp_info2(starttime)

SELECT starttime FROM temp_info1;

-- 执行查询

SELECT a.starttime

FROM temp_info1 AS a

INNER JOIN temp_info2 AS b ON b.tid=a.tid;

#销毁临时表

DROP TEMPORARY TABLE IF EXISTS `temp_info1`;

DROP TEMPORARY TABLE IF EXISTS `temp_info2`;

MYSQL临时表Can't reopen-table 临时表自连接报错 MySql关于临时表cann't reopen

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐