前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql存储过程----临时表 temporary

mysql存储过程----临时表 temporary

作者头像
逝兮诚
发布2019-10-30 12:10:31
4.2K0
发布2019-10-30 12:10:31
举报
文章被收录于专栏:代码人生

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/luo4105/article/details/51501328

在存储过程中可以使用临时表,下面有一个分割字符串的例子

语法

1.创建:create temporary table 表名(列信息);

2.删除:drop table 表名;

3.清空:truncate table 表名;

注意:

1.在mysql中,临时表一但建立,销毁的条件是session中断,所以为了避免创建过程中出现“table 'XX' already exists”的错误,将建表语句改为CREATE TEMPORARY TABLE if not exists 表名(列信息);

2.临时表只有在用户退出连接时(session中断)时,清空数据,不然数据一直累积,若有需求,需要在临时表使用之后清空临时表

例子

一个和java的spilt作用相似存储过程

代码语言:javascript
复制
CREATE DEFINER=`root`@`%` PROCEDURE `str_spilt`(IN `str` varchar(2000))
BEGIN
	#分割字符串
	set @i=0;
	CREATE TEMPORARY TABLE if not exists str_spilt_result(id BIGINT(20) NOT NULL); 
	truncate table str_spilt_result;
	SET @cnt = 1+(LENGTH(str) - LENGTH(REPLACE(str,',','')));
	WHILE @i < @cnt DO
		SET @i = @i + 1;
		SET @result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(str,',',@i)),',',1));
		INSERT INTO str_spilt_result(id) VALUES (@result);
	END WHILE;
	SELECT * from str_spilt_result;
END
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/05/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档