标签:
DROP PROCEDURE IF EXISTS add_costItem;
DELIMITER $$
CREATE
    PROCEDURE `cloud_org`.`add_costItem`()
    BEGIN
         #定义 变量
                   DECLARE costTypeId BIGINT;
                   DECLARE costTypeCode VARCHAR(32);
                   DECLARE acctTypeId INT;
                   DECLARE bizZhyCode VARCHAR(40);
		   DECLARE stationCode VARCHAR(40);	
		   DECLARE str VARCHAR(300);
		   DECLARE numIndex INT;
   
		   DECLARE s INT DEFAULT 0;
DECLARE cursor_name CURSOR FOR SELECT cost_type_id,cost_type_code,acct_type_id,biz_zhy_code,server_station_code FROM sys_cost_item WHERE server_station_code NOT IN (SELECT server_station_code FROM sys_cost_item WHERE cost_item_name = ‘无‘ AND server_station_code!=‘‘ ) GROUP BY cost_type_id;
#设置一个终止标记
  
		   DECLARE CONTINUE HANDLER FOR SQLSTATE ‘02000‘ SET s=1;
			SET str = "--";
				#打开游标
				OPEN cursor_name;
					
					#获取游标当前指针的记录,读取一行数据并传给变量
					FETCH  cursor_name INTO costTypeId,costTypeCode,acctTypeId,bizZhyCode,stationCode;
					#开始循环,判断是否游标已经到达了最后作为循环条件 
					WHILE s <> 1 DO
							SET str =  CONCAT(str,numIndex);
INSERT  INTO `sys_cost_item`(`cost_item_name`,`cost_item_desc`,`cost_type_id`,`cost_type_code`,`status`,`is_preset`,`acct_type_id`,`price`,`unit`,`biz_zhy_code`,`server_station_code`,`create_time`,`create_user_id`,`last_update_user_id`,`update_time`,`last_update_no`,`extra_param`,`modify_rule`) VALUES
(‘无‘,NULL,costTypeId,costTypeCode,1,2,acctTypeId,‘0.00‘,1,bizZhyCode,stationCode,NULL,NULL,NULL,‘2016-08-24 16:02:53‘,0,‘‘,1);
							#读取下一行的数据
							FETCH  cursor_name INTO costTypeId,costTypeCode,acctTypeId,bizZhyCode,stationCode;
					
					END WHILE;
				 
				 #关闭游标
				 CLOSE cursor_name;
			
			SELECT str;
	#语句执行结束
    END$$
DELIMITER ;
创建完之后,调用方法 call add_costItem();
以后每次都会执行存储过程的结果,可以现在编辑器中点击创建存储过程,然后把内容复制到begin到end之间
说明:由于规范有的公司可能禁用存储过程,可以提前写个简单的存储过程试试
参考:http://shitou521.iteye.com/blog/1069027
标签:
原文地址:http://www.cnblogs.com/javaing/p/5802625.html