MYSQL临时表
临时体现
临时表只在当前session中有效。session关闭时临时表***自动删除***。
可重名
不同session中的临时表可以重名(因为只在当前session有效),甚至临时表可以与已存在的表重名(此时,已存在的表***直到临时表被删除前***对于***当前session不可见***)
与数据库(模式)关系松散
删除数据库或模式,不会自动删除该声明下的临时表(只要session不关闭就不会删除)。可以在创建临时表时,指定在一个不存在的数据库下,此时后续使用也必须带上这个不存在的数据库名。
创建
通过使用CREATE TEMPORARY TABLE
关键字创建。在创建临时表后,server不会再对这个表进行权限检查,可执行DROP TABLE
,INSERT
,UPDATE
,SELECT
操作。会导致***权限间接获取***。
权限简接获取
假设当前用户没有CREATE TEMPORARY TABLES特权,但是能够执行某个存储过程(该存储过程由拥有CREATE TEMPORARY TABLES特权的用户创建)。 在执行存储过程时,session使用定义存储过程用户的特权在存储过程中创建临时表。 该存储过程结束后,有效特权将还原为当前用户的特权,但该用户仍可以看到临时表并对其执行任何操作。
参考连接:
https://dev.mysql.com/doc/refman/5.7/en/create-temporary-table.html