职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1408|回复: 2

关于mysql建立临时表的问题(新手入门)

[复制链接]
小明 发表于 2009-8-26 09:40 | 显示全部楼层 |阅读模式
我网上找了一些资料关于MYSQL建立临时表的
我是刚学习MYSQL所以我想问一下他的建立使用等问题
比如我在网站程序里使用了一个连接
来连接到数据库
再传入SQL语句来得到返回结果
我想的问的是如果我要建立临时表是不是在我的传入语句里加一条建立临时表的SQL语句?
如果我查询的是一个临时表里的数据
那么查完后我就会关闭连接
那么我第二次查询的时候那是不是有得再建?(因为我一次不提完数据)
那不是很浪费?
不知道我的想法是错的不?

知道的能把这个使用流程说下吗?麻烦了
问题补充:
不是 说我 临时表我断开连接就没了吗?
比如分页我不可能把所有数据都读去出来吧?
alunn 发表于 2009-8-26 09:41 | 显示全部楼层

关于mysql建立临时表的问题(新手入门)

mysql的临时表和sql server不太一样
没有create @table()这样写法
一般的复杂query
如果mysql认为要用临时表会自动在临时目录下创建像#234.frm这样的文件
如果你要为加快查询手工创建临时表
一般都是先truncate 清空
再向其中insert 数据
最后才是select
阿佳 发表于 2009-8-26 09:41 | 显示全部楼层

关于mysql建立临时表的问题(新手入门)

1、临时表再断开于mysql的连接后系统会自动删除临时表中的数据
但是这只限于用下面语句建立的表:
1)定义字段
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)
2)直接将查询结果导入临时表
CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name

2、另外mysql也允许你在内存中直接创建临时表
因为是在内存中所有速度会很快
语法如下:
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP

3、从上面的分析可以看出临时表的数据是会被清空的
你断开了连接就会被自动清空
但是你程序中不可能每发行一次sql就连接一次数据库吧(如果是这样的话
那就会出现你担心的问题
如果不是就没有问题)
因为只有断开数据库连接才会被清空数据
在一个数据库连接里面发行多次sql的话系统是不会自动清空临时表数据的

---
以上
希望对你有所帮助
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-28 13:08 , Processed in 0.126051 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表