首页 > 数据库 > MySQL > 正文

mysql临时表怎么运用

2024-07-24 12:33:29
字体:
来源:转载
供稿:网友
  临时表是MySQL用于存储一些中间结果集的表,临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。
 
  使用其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然也可以手动删除。
 
  通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表。这种临时表只对当前用户可见,当前会话结束的时候,该临时表会自动关闭。这种临时表的命名与非临时表可以同名(同名后非临时表将对当前会话不可见,直到临时表被删除)。
 
  外部临时表是通过CREATE TEMPORARY TABLE及DROP TABLE来操作的,但是SHOW TABLES命令显示数据表列表时,你将无法看到自己创建的临时表的。并且在退出当前会话后,临时表就会被自动销毁。当然也可以手动(DROP TABLE)销毁。
 
  1、引擎类型:只能是:memory(heap)、myisam、merge、innodb ,不支持mysql cluster(簇)。
 
  2、外部临时表使用时注意几点:
 
  1)、自己所用的数据库账号要有建立临时表的权限;
 
  2)、在同一条sql中,不能关联2次相同的临时表,不然,就会报如下错误;
 
  mysql> select * from temp_table, temp_table as t2;
    error 1137: can't reopen table: 'temp_table'
  3)、临时表在建立连接时可见,关闭时会清除空间,删除临时表;
 
  4)、show tables 不会列出临时表;
 
  5)、不能使用rename重命名临时表。但是,你可以alter table代替:只能使用alter table old_tp_table_name rename new_tp_table_name;
 
  6)、影响使用replication功能;
 
  7)、如果你为一个表声明了别名,当你指向这个表的时候,就必须使用这个别名。见《MySQL 多表关联更新及删除》。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表