mysql 临时表 cann''t reopen解决方案
Jun 07, 2016 pm 05:55 PMMySql关于临时表cann't reopen的问题,本文将提供详细的解决方案,需要了解的朋友可以参考下
当你创建临时表的时候,你可以使用temporary关键字。如:
代码如下:
create temporary table tmp_table(name varchar(10) not null,passwd char(6) not null);
或
代码如下:
create temporary table if not exists sp_output_tmp engine= memory select …from … where ID=current_id;
临时表只在当前连接可见,当这个连接关闭的时候,会自动drop。这就意味着你可以在两个不同的连接里使用相同的临时表名,并且相互不会冲突,或者使用 已经存在的表,但不是临时表的表名。(当这个临时表存在的时候,存在的表被隐藏了,如果临时表被drop,存在的表就可见了)。创建临时表你必须有
create temporary table 权限。
下面几点是临时表的限制:
1、临时表只能用在 memory,myisam,merge,或者innodb
2、临时表不支持mysql cluster(簇)
3、在同一个query语句中,你只能查找一次临时表。例如:下面的就不可用
代码如下:
mysql> SELECT * FROM temp_table, temp_table AS t2;
ERROR 1137: Can't reopen table: 'temp_table'
mysql bug地址:http://bugs.mysql.com/bug.php?id=10327
如果在一个存储函数里,你用不同的别名查找一个临时表多次,或者在这个存储函数里用不同的语句查找,这个错误都会发生。
4、show tables 语句不会列举临时表
你不能用rename来重命名一个临时表。但是,你可以alter table代替:
代码如下:
mysql>ALTER TABLE orig_name RENAME new_name;
临时表用完后要记得drop掉:
代码如下:
DROP TEMPORARY TABLE IF EXISTS sp_output_tmp;

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kemahiran pemprosesan struktur data besar PHP

Bagaimana untuk mengoptimumkan prestasi pertanyaan MySQL dalam PHP?

Bagaimana untuk menggunakan sandaran dan pemulihan MySQL dalam PHP?

Bagaimana untuk memasukkan data ke dalam jadual MySQL menggunakan PHP?

Apakah senario aplikasi jenis penghitungan Java dalam pangkalan data?

Bagaimana untuk membetulkan ralat mysql_native_password tidak dimuatkan pada MySQL 8.4

Bagaimana untuk menggunakan prosedur tersimpan MySQL dalam PHP?

Strategi pengoptimuman prestasi untuk halaman tatasusunan PHP
