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;
- navicat中如何使用sql语句(Navicat Premium操作MySQL数据库执行sql语句)
- 如何用mysql建立图书管理系统(图书管理系统的sqlserver数据库设计示例)
- mysql not exists用法(mysql中EXISTS和IN的使用方法比较)
- navicat创建MySql定时任务的方法详解(navicat创建MySql定时任务的方法详解)
- rename重命名mysql表(MySQL 重命名表的操作方法及注意事项)
- mysql索引原理和优化(Mysql 索引该如何设计与优化)
- binlog怎么恢复mysql数据库(mysql5.7使用binlog 恢复数据的方法)
- mysql索引失效怎么办(MySQL选错索引的原因以及解决方案)
- navicat配置远程访问mysql(解决Navicat无法连接 VMware中Centos系统中的 MySQL服务器的问题)
- MySQL批量执行SQL脚本文件
- 数据库mysql基本知识(深入理解r2dbc在mysql中的使用)
- mysql主从同步原理详解(MySQL双主主主架构配置方案)
- mysqlmha架构图(MySQL之MHA高可用配置及故障切换实现详细部署步骤)
- mysql读写分离怎么实现的(详解MySQL主从复制及读写分离)
- mysql各种锁详解(MySQL 查看事务和锁情况的常用语句分享)
- 对mysql索引的理解(详解MySQL 8.0 之不可见索引)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
- 春节会放假几天(春节会放假吗)
- 小浴室,大民生 缙云3200多户困难群众洗上免费热水澡(小浴室大民生缙云3200多户困难群众洗上免费热水澡)
热门推荐
- js复制内容到剪贴板
- docker运行镜像端口(docker镜像访问本地elasticsearch端口操作)
- mysql图形化管理工具
- dedecms安全验证(dede验证码错误 dede验证码一直提示错误的解决方法)
- sqlserver怎么手动添加数据库表(SQL Server 数据库调整表中列的顺序操作方法及遇到问题)
- js实现商品添加(js实现购物网站放大镜功能)
- css导航栏特效(CSS导航栏及弹窗示例代码)
- dedecms授权协议(360提示DedeCms全局变量覆盖漏洞临时解决方法)
- sql自动化上线平台(sql自动化检查和分析工具 之soar和soar-web 安装和使用体验)
- iis6双php版本的设置(云主机IIS7.5支持PHP5.3以上版本和MYSQL)