今天遇到一个很棘手的问题,想临时存起来一部分数据,然后再读取。我记得学数据库理论课老师说可以创建临时表,不知道mysql有没有这样的功能呢?临时表在内存之中,读取速度应该比视图快一些。然后还需要将查询的结果存储到临时表中。下面是创建临时表以及插入数据的例子,以供大家参考。
A、临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表: 1)定义字段 CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, time date NOT NULL ) 更高级点就是: create temporary TABLE `temtable` ( `jws` varchar(100) character set utf8 collate utf8_bin NOT NULL, `tzlb` varchar(100) character set utf8 collate utf8_bin NOT NULL, `uptime` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1″ 连编码方式都规定了。。呵呵,以防乱码啊。
2)直接将查询结果导入临时表 CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name
B、另外mysql也允许你在内存中直接创建临时表,因为是在内存中所有速度会很快,语法如下: CREATE TEMPORARY TABLE tmp_table ( name VARCHAR(10) NOT NULL, value INTEGER NOT NULL ) TYPE = HEAP
那如何将查询的结果存入已有的表呢?
1、可以使用A中第二个方法
2、使用insert into temtable (select a,b,c,d from tablea)”;