mysql快速备份存储过程、函数

老项目有存储过程,每次发版更新,备份原来的存储过程代码,下面的方法很方便的实现

1. 创建存储过程

CREATE DEFINER=`ccstest`@`%` PROCEDURE `my_prop_make_bak_sql`(psShecmal varchar(30),psFunctions varchar(3000))
BEGIN
	select CONCAT('-- 备份 ',name,'  \r\nDELIMITER $$\r\n \r\nCREATE OR REPLACE ',type,' ',name,'(',CAST(param_list AS CHAR(50000) CHARACTER SET utf8),') ' ,if(type='FUNCTION',' RETURNS ',''),if(type='FUNCTION',CAST(`RETURNS` AS CHAR(50000) CHARACTER SET utf8),''),' \r\n',CAST(body AS CHAR(500000) CHARACTER SET utf8),'$$\r\n \r\nDELIMITER ;\r\n \r\n')  tt
  from mysql.proc where db = psShecmal  and  FIND_IN_SET(LOWER(name),LOWER(psFunctions))>0;
END

2. 调用

-- 第一个参数 schema
-- 第二个参数 要备份的存储过程名称, 多个用英文逗号分隔
call my_prop_make_bak_sql('schema', 'propnam1, propname2')

3. 查询的结果就是存储过程代码,直接拷贝备份

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值