首页 >数据库 >mysql教程 >MYSQL:临时表问题,不支持自联接_MySQL

MYSQL:临时表问题,不支持自联接_MySQL

WBOY
WBOY原创
2016-06-01 13:33:081110浏览

比特网

MYSQL:临时表问题,不支持自联接

 

TEMPORARY TABLE 问题

以下列表指出了使用 TEMPORARY 表的限制:

 

临时表只能是 MEMORY、ISAM、MyISAM、MERGE 或 InnoDB 类型。 

 

MySQL Cluster 不支持临时表。 

 

您不能在同一查询中多次引用 TEMPORARY 表。例如,以下内容不起作用:

 

mysql> SELECT * FROM temp_table, temp_table AS t2;

错误 1137:无法重新打开表:'temp_table'

 

SHOW TABLES 语句未列出 TEMPORARY 表。 

 

您不能使用 RENAME 来重命名 TEMPORARY 表。但是,您可以使用 ALTER TABLE 代替:

 

mysql> ALTER TABLE orig_name RENAME new_name;

 

在复制中使用临时表存在已知问题。有关更多信息,请参阅第 6.7 节“复制功能和已知问题”。 

 

临时表会被复制,除非您关闭从属服务器(不仅仅是从属线程)并且您已经复制了在尚未更新的更新中使用的临时表。在奴隶身上执行。如果关闭从属服务器,则当从属服务器重新启动时,这些更新所需的临时表将不再可用。为了避免此问题,请勿在从属服务器打开临时表时关闭该从属服务器。请改用以下过程:

 

发出 STOP SLAVE 语句。 

 

使用 SHOW STATUS 检查 Slave_open_temp_tables 变量的值。 

 

如果值为 0,则发出 mysqladmin shutdown 命令来停止从属服务器。 

 

如果该值不为 0,则使用 START SLAVE 重新启动从属线程。 

 

稍后重复该过程,直到 Slave_open_temp_tables 变量为 0,您可以停止从属服务器。

 

bitsCN.com
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn