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 pt-slave-restart工具的使用简介)
- mysql字符串截取字段(MySQL如何从不固定位置提取字符串元素详解)
- mysql主机双向复制配置(浅析MySQL并行复制)
- mysql记录binlog的方式(MySQL使用binlog日志做数据恢复的实现)
- navicat创建MySql定时任务的方法详解(navicat创建MySql定时任务的方法详解)
- docker查找redis配置文件(解决docker重启redis,mysql数据丢失的问题)
- mysql拆分字符串(MySQL 字符串拆分操作含分隔符的字符串截取)
- mysql定时任务
- mysql建立索引的主要目的(浅谈Mysql哪些字段适合建立索引)
- mysqlshell日常运维脚本(监控MySQL主从状态的shell脚本)
- mysql操作时间的函数(一篇文章搞定Mysql日期时间函数)
- mysql密码设置(mysql密码中有特殊字符&在命令行下登录的操作)
- mysqljoin语句用法(MySQL的join buffer原理)
- mysql5.7详细安装教程(MySQL5.7.33安装过程图文详解)
- mysql简单查询基本语句(详解MySQL 查询语句的执行过程)
- mysql六大锁解析(MySQL 锁的相关知识总结)
- 蓝色代表什么(蓝色代表什么性格的人)
- 红色代表什么(红色代表什么情感和含义)
- 南宋志南和尚绝句 杨柳风似庙中来(南宋志南和尚绝句)
- 今天要穿什么颜色(今天要穿什么颜色的衣服最吉利)
- 一道高中题-求杯子的高度(一道高中题-求杯子的高度)
- 网坛停摆三巨头亏损惨重,费德勒跌幅88 纳达少赚2400万(网坛停摆三巨头亏损惨重)
热门推荐
- django框架基础之路由详解(详解Django中CBVClass Base Views模型源码分析)
- 微信小程序canvas缩放(微信小程序之html5 canvas绘图并保存到系统相册)
- 云服务器用于什么方面(美国云服务器与哪些因素有关?)
- php对接微信付款(PHP微信支付功能示例)
- python中三种基本的数值类型(python基础知识一变量与简单数据类型详解)
- centos中安装sql图(CentOS 7.3上SQL Server vNext CTP 1.2安装教程)
- dedecms数据负载能力(DedeCms 5.7后台首页很卡的解决方法)
- binlog怎么恢复mysql数据库(mysql5.7使用binlog 恢复数据的方法)
- php代码生成器(PHP迭代器和生成器用法实例分析)
- html5清除浮动的方法(HTML5实现移动端点击翻牌功能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9