mysql 语句对象,sp_objectMYSQL获取当前实例下指定对象与定义语句内容_MySQL

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

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值