mysql 关于临时表的问题

Cryslonger 2010-10-18 01:20:43
请问下在命令行内用mysqldump可以调用内存中的表吗?就是我用储存过程创建了个临时表,执行过程后临时表的数据在内存里,现在我想把临时表中的数据dump出来,可以吗?还是创建一个普通的表,然后dump后再删除这个表,作用就跟临时表一样了。?
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoxingyu 2010-10-19
  • 打赏
  • 举报
回复
call执行后,(没有exit),然后进行dump是不可行的喽?

你能够做到DUMP和存储过程是同一个SESSION么??

如果你能做到,那么可行。否则不可行。

DUMP不属于任何一个SESSION。
Cryslonger 2010-10-19
  • 打赏
  • 举报
回复
所以我用储存过程创建一个临时表,并把数据库里的数据插入到临时表内,call执行后,(没有exit),然后进行dump是不可行的喽?
sleepzzzzz 2010-10-19
  • 打赏
  • 举报
回复
mysql 有global临时表就好了。
zuoxingyu 2010-10-19
  • 打赏
  • 举报
回复

mysql> CREATE TEMPORARY TABLE TMP(A int);
ERROR 1046 (3D000): No database selected
mysql> use mydb;
Database changed
mysql> CREATE TEMPORARY TABLE TMP(A int);
Query OK, 0 rows affected (0.20 sec)

mysql> insert into TMp values(1);
Query OK, 1 row affected (0.06 sec)

mysql> select * from tmp;
+------+
| A |
+------+
| 1 |
+------+
1 row in set (0.00 sec)

mysql> exit
Bye
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

D:\mysql6\bin>mysqldump -uroot -p123 mydb tmp>1.sql
mysqldump: Couldn't find table: "tmp"

D:\mysql6\bin>


临时表只是连接有效,也就是说你在连接1里面创建的临时表,能且只能在连接1内访问得到。另外启动一个连接或者断开原来的链接回到DOS命令行下,都会导致临时表的失效。

4楼的答案有待商榷。
在连接保持的情况下
select * from tmp_table into outfile "name.txt"
可以得到临时表的数据。
ACMAIN_CHM 2010-10-19
  • 打赏
  • 举报
回复
参考一下手册中的用法和说明。
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
ACMAIN_CHM 2010-10-19
  • 打赏
  • 举报
回复
mysqldump -uroot -p1234 db1 table1 > xx.sql
Cryslonger 2010-10-19
  • 打赏
  • 举报
回复
我知道,在mysql command line client里用select * from tmp_table into outfile "name.txt"可以把临时表里的导出来。但我想问的是如何mysqldump命令来找到临时表,如何从内存内dump。
rucypli 2010-10-18
  • 打赏
  • 举报
回复
直接导出来
SQLCenter 2010-10-18
  • 打赏
  • 举报
回复
move to mysql

56,685

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧