Maison >base de données >tutoriel mysql >sp_object MYSQL获取当前实例下指定对象与定义语句内容_MySQL

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

WBOY
WBOYoriginal
2016-06-01 13:34:22943parcourir

bitsCN.com

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

 

[sql]

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 ;    

 

bitsCN.com
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn