ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql 存储过程

2022-04-22 11:35:22  阅读:162  来源: 互联网

标签:存储 endnum int S1 startnum add mysql 过程 PROCEDURE


--alter table shiyanshuju.gdpoint add S_X_S1 double(10,3),add S_Y_S1 double(10,3),add E_X_S1 double(10,3),add E_Y_S1 double(10,3),add S_H_S1 float(9,3),add E_H_S1 float(9,3),add SE_S1 VARCHAR(255),
add D_S_S1 VARCHAR(20),add E_Deep_S1 double(10,3),add S_Deep_S1 double(10,3),add D_Type_S1 VARCHAR(20);--

存储过程调用 方法

call delColoums (1,2)
--参数 字段排序开始,字段排序结束
call addColoums(1,1)

**** 存储过程 1:循环增加字段****

DROP PROCEDURE IF EXISTS `hd_ybz`.`addColoums`;

CREATE DEFINER=`root`@`localhost` PROCEDURE `addColoums`(IN `startnum` int,IN `endnum` int)
BEGIN
 DECLARE num int default 1; 
 WHILE startnum <= endnum DO

		 set @addSql = CONCAT('alter table shiyanshuju.gdpoint add S_X_S',startnum,' double(10,3), add S_Y_S',startnum,'  double(10,3),add E_X_S',startnum,'  double(10,3),add E_Y_S',startnum,'  double(10,3),add S_H_S',startnum,'  float(9,3),add E_H_S',startnum,'  float(9,3),add SE_S',startnum,'  VARCHAR(255),
		add D_S_S',startnum,' VARCHAR(20),add E_Deep_S',startnum,' double(10,3),add S_Deep_S',startnum,' double(10,3),add D_Type_S',startnum,' VARCHAR(20)');
							
				prepare addstmt from @addSql;
			 
				execute addstmt;
		 
				DEALLOCATE PREPARE addstmt;
							 
				set startnum = (startnum+num);
	
	END WHILE;
			IF startnum > endnum THEN
				set startnum = endnum;
			END IF ; 

 SELECT  CONCAT('增加字段PROCEDURE执行完毕:',startnum) result;

END;

**** 存储过程 2: 循环删除字段***

DROP PROCEDURE IF EXISTS `hd_ybz`.`delColoums`;

CREATE DEFINER=`root`@`localhost` PROCEDURE `delColoums`(IN `startnum` int,IN `endnum` int)
BEGIN      
   DECLARE num int default 1; 
		WHILE startnum <= endnum DO
		 

		 set @delSql = CONCAT('alter table shiyanshuju.gdpoint drop column S_X_S',startnum,' ,drop column S_Y_S',startnum,'  ,drop column E_X_S',startnum,'  ,drop column E_Y_S',startnum,'  ,drop column S_H_S',startnum,'  ,drop column E_H_S',startnum,'  ,drop column SE_S',startnum,',

drop column D_S_S',startnum,',drop column E_Deep_S',startnum,',drop column S_Deep_S',startnum,',drop column D_Type_S',startnum,'');
							

				prepare delstmt from @delSql;
			 
				execute delstmt;
		 
				DEALLOCATE PREPARE delstmt;
				
				set startnum = (startnum+num);
	END WHILE;
			IF startnum > endnum THEN
				set startnum = endnum;
			END IF ; 

 SELECT  CONCAT('删除字段PROCEDURE执行完毕:',startnum) result;
	

END;

标签:存储,endnum,int,S1,startnum,add,mysql,过程,PROCEDURE
来源: https://www.cnblogs.com/wwwzhqwww/p/16178127.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有