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

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

语法

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作用相似存储过程

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


 



MySQL存储过程中,可以使用临时表来存储临时数据。使用临时表的好处是可以在存储过程的执行过程中存储和处理数据,而不会对数据库中的永久表产生影响。临时表存储过程执行完成后会自动删除。 要在MySQL存储过程中使用临时表,可以按照以下步骤进行操作: 1. 在存储过程中创建临时表。可以使用CREATE TEMPORARY TABLE语句来创建临时表,指定表名、列名和数据类型等信息。 2. 在存储过程中向临时表中插入数据。可以使用INSERT INTO语句将数据插入到临时表中。 3. 在存储过程中使用临时表进行数据处理。可以使用SELECT、UPDATE、DELETE等语句对临时表中的数据进行查询、更新、删除等操作。 4. 存储过程执行完成后,临时表会自动被删除。 使用临时表可以方便地在存储过程中进行数据处理,尤其在需要存储和处理临时数据的情况下非常有用。注意,临时表只在当前连接中可见,其他连接无法访问临时表的数据。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL存储过程中使用临时表、游标以及调试存储过程](https://blog.csdn.net/weixin_41343836/article/details/108384886)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值