比特网
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