这篇文章主要介绍“mysql的临时表有哪几种”,在日常操作中,相信很多人在mysql的临时表有哪几种问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql的临时表有哪几种”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

mysql临时表分为两种,一种是使用create temporary table创建的,称为为外部临时表(本文不加说明的情况下,临时表默认指的是外部临时表),一种是因union、order by、group by、distinct等语句产生的,称为内部临时表。

1、创建临时表语法create temporary table table_name (column1 type,column1 type,…columnX type);

2、临时表只对当前用户可见,当前会话结束的时候,该临时表会自动删除,和oracle不一样,oracle只是数据删除,临时表这个表结构永远存在。

3、一个会话内,临时表的命名与非临时表可以同名,一个会话内一旦出现同名的临时表,则非临时表对当前会话不可见,任何操作都是在临时表上进行(show create table table_name、dml、ddl),直到临时表被删除。

4、show tables命令不显示临时表

5、不同的会话可以创建同名的临时表,比如会话A可以创建临时表名temp1,会话B也可以同时创建临时表名temp1

6、临时表的表结构存放在tmpdir参数对应的目录下,命名为#sqlc进程号_线程号_序号.frm,例如#sqlc19_7_0.frm、#sqlc19_7_1.frm分别表示7号线程下的第一个临时表、第二个临时表