mysql 临时表
mysql 临时表
mysql 临时表一、创建临时表
可以使用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;
二、临时表的特性
1、只有在当前连接情况下, TEMPORARY 表才是可见的。当连接关闭时, TEMPORARY 表被自动取消。这意味着两个不同的连接可以使用相同的临时表名称,同时两个临时表不会互相冲突,也不与原有的同名的非临时表冲突。(原有的表被隐藏,直到临时表被取消时为止。)必须拥有 CREATE TEMPORARY TABLES 权限,才能创建临时表。可以通过指定 ENGINE|TYPE = MEMORY; 来指定创建内存临时表。
2、如果表已存在,则使用关键词 IF NOT EXISTS 可以防止发生错误。注意,原有表的结构与 CREATE TABLE 语句中表示的表的结构是否相同,这一点没有验证。注释:如果在 CREATE TABLE...SELECT 语句中使用 IF NOT EXISTS ,则不论表是否已存在,由 SELECT 部分选择的记录都会被插入。
3、临时表只能用在 memory,myisam,merge,或者innodb
4、临时表不支持mysql cluster(簇)
5、在同一个query语句中,你只能查找一次临时表,如果在一个存储函数里,你用不同的别名查找一个临时表多次,或者在这个存储函数里用不同的语句查找,这个错误都会发生。
6、show tables 语句不会列举临时表
7、你不能用rename来重命名一个临时表。但是,你可以alter table代替:
mysql>ALTER TABLE orig_name RENAME new_name;
8、临时表用完后要记得drop掉:
mysql>DROP TEMPORARY TABLE IF EXISTS sp_output_tmp;
9、DROP TEMPORARY TABLE 语句只取消 TEMPORARY 表,语句不会终止正在进行中的事务。在采用连接池的情况下,为防止多次 CREATE 、 DROP TEMPORARY TABLE 带来的性能瓶颈,可以使用 CREATE IF NOT EXISTS + TRUNCATE TABLE 的方式来提升性能。
三、mysql 临时表实例
CREATE PROCEDURE sp_test_tt(IN i_chars VARCHAR(50),OUT o_counts BIGINT)
BEGIN
create temporary table if not exists tmpTable – 不存在则创建临时表
(
objChk varchar(255) primary key,
ModelName varchar(50),
Operator varchar(500),
PModelName varchar(50)
);
truncate TABLE tmpTable; -- 使用前先清空临时表。
insert into tmpTable values(i_chars,i_chars,i_chars,i_chars);
insert into tmpTable values(i_chars,i_chars,i_chars,i_chars); -- 语句1
select * from tmpTable; -- 语句2
select count(*) into o_counts from tmpTable; -- 语句3
END;
- mysql数据库间的连接(MySQL中表的几种连接方式)
- mysql用什么类型数据(MySQL 数据类型选择原则)
- mysql事件教程(关于MySQL报警的一次分析处理详解)
- mysql索引应该注意的地方(关于MySQL索引知识的小妙招)
- mysql查询killed状态的进程(MySQL kill指令使用指南)
- mysql中group_concat
- mysql8.0如何配超时时间(解决MySQL8.0时区的问题步骤)
- mysql mvcc 隔离级别(详解MySQL事务的隔离级别与MVCC)
- django mysql设置(Django框架使用mysql视图操作示例)
- mysql8.0关键字段使用(MySQL 8.0新特性之隐藏字段的深入讲解)
- mysql的四种关系运算(详解MySQL拼接函数CONCAT的使用心得)
- mysql的分页原理(mysql分页的limit参数简单示例)
- mysql存储过程limit参数(MySQL存储过程in、out和inout参数示例和总结)
- mysql 临时表
- mysql数据库简单优化(MySQL数据类型优化原则)
- mysql账户访问权限(MySQL 权限控制详解)
- 《祝卿好》台词又土又甜,就喜欢这么直接的恋爱(祝卿好台词又土又甜)
- 大女主 汤唯垂青电视圈,搭档朱亚文出演《大明皇妃孙若微传》(汤唯垂青电视圈)
- 红色代表什么(红色代表什么情感和含义)
- 高中数学题(高中数学题型总结及解题方法)
- 冰岛旅游攻略(冰岛旅游攻略及花费)
- 为什么现在年轻人越来越喜欢买衣服(为什么现在年轻人越来越喜欢买衣服穿)
热门推荐
- pythonftp功能介绍(使用Python操作FTP实现上传和下载的方法)
- mysql的存储性能优化(MySQL的查询缓存和Buffer Pool)
- 阿里云在域名控制台添加解析记录(阿里云虚拟主机怎样将子域名绑定到子目录?)
- python表格导出为图片(python生成带有表格的图片实例)
- net coredocker基础镜像(Docker 部署net5程序实现跨平台功能)
- php中function函数的用法(PHP中quotemeta函数的用法讲解)
- dedecms标签插入时间(dedecms修改按tag标签显示全站相关内容的方法)
- django怎么设置数据库(django配置连接数据库及原生sql语句的使用方法)
- MySQL中使用mysqldump命令备份
- 怎样使用python图像处理(Python Image模块基本图像处理操作小结)