MYSQL: 临时表问题,不支持自联接
2013-06-05 13:55
459 查看
TEMPORARY TABLE Problems
The following list indicates limitations on the use of TEMPORARY tables:
A TEMPORARY table can only be of type MEMORY, ISAM, MyISAM, MERGE, or InnoDB.
Temporary tables are not supported for MySQL Cluster.
You cannot refer to a TEMPORARY table more than once in the same query. For example, the following does not work:
mysql> SELECT * FROM temp_table, temp_table AS t2;
ERROR 1137: Can't reopen table: 'temp_table'
The SHOW TABLES statement does not list TEMPORARY tables.
You cannot use RENAME to rename a TEMPORARY table. However, you can use ALTER TABLE instead:
mysql> ALTER TABLE orig_name RENAME new_name;
There are known issues in using temporary tables with replication. See Section 6.7, “Replication Features and Known Problems”, for more information.
Temporary tables are replicated except in the case where you shut down the slave server (not just the slave threads) and you have replicated temporary tables that are used in updates that
have not yet been executed on the slave. If you shut down the slave server, the temporary tables needed by those updates are no longer available when the slave is restarted. To avoid this problem, do not shut down the slave while it has temporary tables open.
Instead, use the following procedure:
Issue a STOP SLAVE statement.
Use SHOW STATUS to check the value of the Slave_open_temp_tables variable.
If the value is 0, issue a mysqladmin shutdown command to stop the slave.
If the value is not 0, restart the slave threads with START SLAVE.
Repeat the procedure later until the Slave_open_temp_tables variable is 0 and you can stop the slave.
The following list indicates limitations on the use of TEMPORARY tables:
A TEMPORARY table can only be of type MEMORY, ISAM, MyISAM, MERGE, or InnoDB.
Temporary tables are not supported for MySQL Cluster.
You cannot refer to a TEMPORARY table more than once in the same query. For example, the following does not work:
mysql> SELECT * FROM temp_table, temp_table AS t2;
ERROR 1137: Can't reopen table: 'temp_table'
The SHOW TABLES statement does not list TEMPORARY tables.
You cannot use RENAME to rename a TEMPORARY table. However, you can use ALTER TABLE instead:
mysql> ALTER TABLE orig_name RENAME new_name;
There are known issues in using temporary tables with replication. See Section 6.7, “Replication Features and Known Problems”, for more information.
Temporary tables are replicated except in the case where you shut down the slave server (not just the slave threads) and you have replicated temporary tables that are used in updates that
have not yet been executed on the slave. If you shut down the slave server, the temporary tables needed by those updates are no longer available when the slave is restarted. To avoid this problem, do not shut down the slave while it has temporary tables open.
Instead, use the following procedure:
Issue a STOP SLAVE statement.
Use SHOW STATUS to check the value of the Slave_open_temp_tables variable.
If the value is 0, issue a mysqladmin shutdown command to stop the slave.
If the value is not 0, restart the slave threads with START SLAVE.
Repeat the procedure later until the Slave_open_temp_tables variable is 0 and you can stop the slave.
相关文章推荐
- 问题发现:mysql不支持select top n
- SpringJDBC的JdbcTemplate在MySQL5.7下不支持子查询的问题
- mysql的jdbc中fetchsize支持的问题
- mysql中文进行全文索引支持问题
- peewee 对 mysql 类型支持问题,并不支持bit
- MySQLDriverCS 不支持问题解决 Uint 4.0 .net 2.0
- ios php mysql 支持unicode表情 插入问号问题
- IIS+php 不支持mysql的一个问题以及解决
- mysql临时表产生的执行效率问题改进
- Joomla安装MySql支持问题解决
- 解决:php+apache+mysql部署中遇到的mysql_connect()不支持问题
- mysql中的join问题:mysql不支持full join
- Ubuntu安装mysql 不支持中文的问题
- MySql支持utf-8编码的问题
- [置顶] 让turboGears支持MySQL -- 解决MySQL-python-1.2.2的安装问题
- MySQL不支持中文、将编码修改为utf-8,仍不支持中文问题解决方案
- MySQL的BLOB类型(解决mysql不支持mb4编码的时候存储emoji表情问题)
- PHP4升级到PHP5支持MySQL 的问题
- Mysql事务问题调试了半天,居然是Mysql数据库类型为MyISAM的表不支持事务
- mysql支持中文的问题