注册

MYSQL存储过程迁移

刘强 2023/05/15 885 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:win11
【CPU】:
【问题描述】*:MYSQL存储过程如下,里面涉及到concat函数、动态表名、数据删除,插入。如何迁移到达梦上
begin

# 删除数据(本月、上月水) 因上一天数据会有变化并考虑跨月情况
set @sql_delete_water = concat(
	'delete from jichugongsi_duobiaojichao_stat_measure_day_energy_deal ',
	" WHERE energy_type = 'WATER' 
		AND billing_type = 'DAY' 
		and (DATE_FORMAT(measure_date, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
			or DATE_FORMAT(measure_date, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 Month), '%Y-%m'))"
);
PREPARE sql_delete_water FROM @sql_delete_water;   
EXECUTE sql_delete_water; 
DEALLOCATE PREPARE sql_delete_water; #释放连接
# 插入数据(水)
set @sql_insert_water = concat(
	"INSERT INTO rddata.jichugongsi_duobiaojichao_stat_measure_day_energy_deal (energy_type, measure_date, day_energy,  billing_type, update_time) 
	SELECT energy_type, DATE_FORMAT(measure_date, '%Y-%m-%d'), sum(day_energy), billing_type, current_timestamp()	
	FROM jichugongsi_duobiaojichao_stat_measure_day_energy_", DATE_FORMAT(CURDATE(), '%Y%m'), 
	" WHERE energy_type = 'WATER' 
		AND billing_type = 'DAY' 
		and day_energy < 999
		GROUP BY DATE_FORMAT(measure_date, '%Y-%m-%d')			
	union all 
	SELECT energy_type, DATE_FORMAT(measure_date, '%Y-%m-%d'), sum(day_energy), billing_type, current_timestamp()		
	FROM jichugongsi_duobiaojichao_stat_measure_day_energy_", DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 Month), '%Y%m'), 
	" WHERE energy_type = 'WATER' 
		AND billing_type = 'DAY' 
		and day_energy < 999
		GROUP BY DATE_FORMAT(measure_date, '%Y-%m-%d')
	"
);
PREPARE sql_insert_water FROM @sql_insert_water;   
EXECUTE sql_insert_water; 
DEALLOCATE PREPARE sql_insert_water; #释放连接

END

回答 0
暂无回答
扫一扫
联系客服