{"id":311,"date":"2009-12-05T20:43:34","date_gmt":"2009-12-05T15:13:34","guid":{"rendered":"http:\/\/kedar.nitty-witty.com\/?p=311"},"modified":"2015-01-03T16:48:39","modified_gmt":"2015-01-03T16:48:39","slug":"stored-procedure-to-find-database-objects","status":"publish","type":"post","link":"https:\/\/kedar.nitty-witty.com\/blog\/stored-procedure-to-find-database-objects","title":{"rendered":"Stored procedure to Find database objects"},"content":{"rendered":"<p>This procedure lists available database objects under passed database name.<\/p>\n<p>It lists present Tables, Views, Stored Procedures, Functions and Triggers under particular database.<br \/>\nIt also lists storage engine of tables.<br \/>\nIt uses information schema database to gather information and storing in a temporary table.<\/p>\n<p>Usage: call xplore(database-name);<br \/>\n&#8211; Procedure will search through information schema for database objects under database-name.<\/p>\n<p><strong>Download Stored Procedure: <a href=\"http:\/\/kedar.nitty-witty.com\/wp-content\/uploads\/2009\/12\/explore-database.sql\">explore-database<\/a><\/strong><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">DELIMITER $$<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">DROP PROCEDURE IF EXISTS `xplore` $$<br \/>\nCREATE DEFINER=`root`@`localhost` PROCEDURE `xplore`(IN_DB varchar(100))<br \/>\nBEGIN<br \/>\nDECLARE DB VARCHAR(100);<br \/>\nDECLARE NO_TABLES INT(10);<br \/>\nDECLARE NO_VIEWS INT(10);<br \/>\nDECLARE NO_FUNCTIONS INT(10);<br \/>\nDECLARE NO_PROCEDURES INT(10);<br \/>\nDECLARE NO_TRIGGERS INT(10);<br \/>\nDECLARE SUMMARY VARCHAR(200);<br \/>\nSET DB=IN_DB;<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">drop temporary table if exists objects;<br \/>\ncreate temporary table objects<br \/>\n(<br \/>\nobject_type varchar(100),<br \/>\nobject_name varchar(100),<br \/>\nobject_schema varchar(100)<br \/>\n)<br \/>\nengine=myisam; <\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">INSERT INTO objects<br \/>\n\/* query for triggers *\/<br \/>\n(SELECT &#8216;TRIGGER&#8217;,TRIGGER_NAME ,TRIGGER_SCHEMA<br \/>\nFROM information_schema.triggers<br \/>\nWHERE TRIGGER_SCHEMA like DB)<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">UNION<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">\/* query for views*\/<br \/>\n(SELECT &#8216;VIEW&#8217;, TABLE_NAME,TABLE_SCHEMA<br \/>\nFROM information_schema.tables<br \/>\nWHERE table_type=&#8217;VIEW&#8217; and TABLE_SCHEMA like DB)<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">UNION<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">\/* query for procedure*\/<br \/>\n(SELECT &#8216;PROCEDURE&#8217;, SPECIFIC_NAME, ROUTINE_SCHEMA<br \/>\nFROM information_schema.routines<br \/>\nWHERE routine_type=&#8217;PROCEDURE&#8217; and ROUTINE_SCHEMA like DB)<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">UNION<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">\/* query for function*\/<br \/>\n(SELECT &#8216;FUNCTION&#8217;, SPECIFIC_NAME, ROUTINE_SCHEMA<br \/>\nFROM information_schema.routines<br \/>\nWHERE routine_type=&#8217;FUNCTION&#8217; and ROUTINE_SCHEMA like DB)<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">UNION<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">\/* query for tables*\/<br \/>\n(SELECT concat(ENGINE,&#8217; TABLE&#8217;), TABLE_NAME, TABLE_SCHEMA<br \/>\nFROM information_schema.tables<br \/>\nWHERE table_type=&#8217;BASE TABLE&#8217; and TABLE_SCHEMA like DB<br \/>\nGROUP BY ENGINE, TABLE_NAME);<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">\/* show gathered information from temporary table *\/<br \/>\nSELECT object_name,object_type,object_schema<br \/>\nFROM objects;<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">\/* Prepare and show summary *\/<br \/>\nSELECT object_schema AS `DATABASE`,<br \/>\nSUM(IF(object_type like &#8216;%TABLE&#8217;, 1, 0)) AS &#8216;TABLES&#8217;,<br \/>\nSUM(IF(object_type=&#8217;VIEW&#8217;, 1, 0)) AS &#8216;VIEWS&#8217;,<br \/>\nSUM(IF(object_type=&#8217;TRIGGER&#8217;, 1, 0)) AS &#8216;TRIGGERS&#8217;,<br \/>\nSUM(IF(object_type=&#8217;FUNCTION&#8217;, 1, 0)) AS &#8216;FUNCTIONS&#8217;,<br \/>\nSUM(IF(object_type=&#8217;PROCEDURE&#8217;, 1, 0)) AS &#8216;PROCEDURES&#8217;<br \/>\nFROM objects<br \/>\nGROUP BY object_schema;<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">END $$<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #888888;\">DELIMITER ;<\/span><\/p>\n<p><span style=\"color: #888888;\"> <\/span><\/p>\n<p><span style=\"color: #888888;\"><span style=\"color: #000000;\"> <\/span><\/span><\/p>\n<div id=\"_mcePaste\" style=\"position: absolute; left: -10000px; top: 1315px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;\">I have also published this as an article on EE.<\/div>\n<div id=\"_mcePaste\" style=\"position: absolute; left: -10000px; top: 1315px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;\">http:\/\/www.experts-exchange.com\/articles\/Database\/MySQL\/Finding-tables-views-functions-procedures-and-triggers-in-MySQL-Database.html<\/div>\n<p>I have also published this as an article on EE.<\/p>\n<p>http:\/\/www.experts-exchange.com\/articles\/Database\/MySQL\/Finding-tables-views-functions-procedures-and-triggers-in-MySQL-Database.html<\/p>\n","protected":false},"excerpt":{"rendered":"This procedure lists available database objects under passed database name. It lists present Tables, Views, Stored Procedures, Functions and Triggers under particular database. It also lists storage engine of tables.&hellip;\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[8,378,6],"tags":[24,427,108,426],"class_list":{"0":"post-311","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-mysql","7":"category-mysql-scripts-mysql","8":"category-technical","9":"tag-code","10":"tag-mysql","11":"tag-stored-procedure","12":"tag-technical"},"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts\/311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/comments?post=311"}],"version-history":[{"count":3,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts\/311\/revisions"}],"predecessor-version":[{"id":1998,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/posts\/311\/revisions\/1998"}],"wp:attachment":[{"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/media?parent=311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/categories?post=311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kedar.nitty-witty.com\/blog\/wp-json\/wp\/v2\/tags?post=311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}