我想创建一个临时表,该表将暂时隐藏真实表并具有与真实表相同的名称和结构。
独立地,所有功能都按预期工作。这将创建一个临时表,该表隐藏前一个表,直到再次删除临时表:
CREATE TEMPORARY TABLE t (test INT);
这将创建一个与原始表具有相同结构(但名称不同)的临时表:
CREATE TEMPORARY TABLE t2 LIKE t;
但这给出了一个错误:
CREATE TEMPORARY TABLE t LIKE t;
1066 - 不是唯一的表/别名:'t'
该表是一个持久缓存,它保存从原始表中提取时需要很长时间的分组数据。此数据用于生成报告。有时,对于部分报告,我想从数据子集重新创建缓存。临时表是理想的,因为我可以用新数据覆盖原始缓存,在其上运行报告功能,当连接结束时它会自动删除,而所有其他进程都可以愉快地使用真正的持久表。