分享:sp_object MYSQL获取当前实例下指定对象与定义语句内容

DELIMITER $$  
  
USE `test`$$  
  
DROP PROCEDURE IF EXISTS `sp_object`$$  
  
CREATE PROCEDURE `sp_object` ( p_OBJECTNAME VARCHAR(255), p_DBNAME VARCHAR(255) )  
BEGIN  
/*  
作者:陈恩辉  
调用示例:  
CALL sp_object ( 'UpdateFactAdGroupDailyUsageByHourly','' );
*/  
-- 过程与函数  
SELECT `type` AS __TYPE, db AS DBNAME ,`name` AS OBJECTNAME ,body AS  DEFINITION   
FROM mysql.proc a  
WHERE db LIKE  CONCAT(p_DBNAME,'%')   
    AND `name` LIKE  CONCAT(p_OBJECTNAME, '%')  -- AND `type` = 'PROCEDURE'  
-- 表  
UNION ALL   
SELECT 'TABLE' AS __TYPE, TABLE_SCHEMA,TABLE_NAME ,'' AS  DEFINITION   
FROM information_schema.TABLES a    
WHERE TABLE_SCHEMA LIKE  CONCAT(p_DBNAME,'%')  
    AND table_name LIKE CONCAT(p_OBJECTNAME,'%')  
-- 触发器  
UNION ALL   
SELECT 'TRIGGER' AS __TYPE ,TRIGGER_SCHEMA AS DBNAME ,TRIGGER_NAME ,ACTION_STATEMENT AS DEFINITION  FROM information_schema.`TRIGGERS` a  
WHERE TRIGGER_SCHEMA LIKE CONCAT(p_DBNAME,'%')    
    AND TRIGGER_NAME LIKE CONCAT(p_OBJECTNAME, '%')    
-- 视图  
UNION ALL   
SELECT 'VIEW' AS __TYPE ,TABLE_SCHEMA AS DBNAME,TABLE_NAME  AS `viewname`,VIEW_DEFINITION AS DEFINITION  FROM information_schema.`VIEWS` a  
WHERE TABLE_SCHEMA LIKE CONCAT(p_DBNAME,'%')    
    AND TABLE_NAME LIKE CONCAT(p_OBJECTNAME, '%') 
ORDER BY __TYPE ,DBNAME ;  
  
END$$   
DELIMITER ;  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值