7月28

MYSQL临时表关联Can't reopen table

| |
13:38 DBA » MYSQL  From: 本站原创
阅读(6617) | 评论(1) | 引用(0)
MYSQL临时表关联Can't reopen table,
这是由于
引用
使用临时表的诸多限制
引擎类型只能是: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功能


报错实例
[codes=c#]
  #创建临时表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`;
[/codes]
MYSQL临时表Can't reopen-table 临时表自连接报错 MySql关于临时表cann't reopen
tommyhuc.cn网友,来自
2021/06/24 15:48
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emot
打开HTML
打开UBB
打开表情
隐藏
记住我

昵称 : 

密码(可不填) :  游客无需密码

网址 (可不填) : 

电邮 (可不填) :  [注册]