MySQL SP 模板,一键套用

drop PROCEDURE sp_name;
DELIMITER $$
CREATE PROCEDURE sp_name(IN input_col1 VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,IN input_col2 datetime)
BEGIN
    SELECT * FROM table WHERE col1= 'XXX';
    
    ##搞个联合查询更新
    create table tmp_staging_table as 
		select col1,col2,a.create_time
		from table1 a 
		left join table2 b on a.id=b.id
		left join table3 e on e.id = b.id
		left join table4 c on b.id = c.id
		left join new_db.table5 d on c.code = d.no 
		and e.name=d.no 
		and case when e.name='XXX' then 'AA' else e.name end = d.`wind farm`
		where a.num is not null and b.deleted = 0
		AND b.id is not null 
		and e.name = input_col1 and a.create_time>= input_col2;

		##update in the result table
	update table1 r
	inner join tmp_staging_table s
		 on r.id = s.id
		 and r.code= s.code
	set r.col1=s.col1,r.col2=s.col2;
    
END $$
DELIMITER ;


##
call sp_name('ur-input','2024-06-18 16:00:00')

新建一个查询然后代码贴进去修改即可,不要在函数的地方建,正确的语法总报错,有啥错,好得很!建好一样会在函数里出现。

之所以会设置输入参数的编码格式是因为我在调用中传参,中文的,说我编码格式不一致,出不来,所以varchar给设了一把。至于日期,date/datetime都不要设,设了才报错。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值