मैं mysql कमांड लाइन में संग्रहीत प्रक्रियाओं या संग्रहीत कार्यों की सूची को कैसे देख सकता हूं, जैसे show tables;
या show databases;
कमांड।
मैं mysql कमांड लाइन में संग्रहीत प्रक्रियाओं या संग्रहीत कार्यों की सूची को कैसे देख सकता हूं, जैसे show tables;
या show databases;
कमांड।
जवाबों:
show procedure status
आप संग्रहीत प्रक्रियाओं को दिखाएगा।
show create procedure MY_PROC
आपको एक प्रक्रिया की परिभाषा दिखाएगा। तथा
help show
आपको show
कमांड के लिए सभी उपलब्ध विकल्प दिखाएंगे ।
नाम वार में प्रक्रिया देखने के लिए
select name from mysql.proc
सभी प्रक्रिया को सूचीबद्ध करने के लिए नीचे दिए गए कोड का उपयोग किया जाता है और नीचे दिए गए कोड शो प्रक्रिया की स्थिति के समान परिणाम देते हैं
select * from mysql.proc
select db,name,type from mysql.proc where db<>'sys';
थोड़ा और अधिक जानकारी के लिए विकसित किया , और कम अंतर्निहित सिस्टम kruft।
अधिक विशिष्ट तरीका:
SHOW PROCEDURE STATUS
WHERE Db = DATABASE() AND Type = 'PROCEDURE'
जैसा कि ऊपर उल्लेख किया गया है,
show procedure status;
वास्तव में प्रक्रियाओं की एक सूची दिखाएगा, लेकिन उन सभी को दिखाता है, सर्वर-वाइड।
यदि आप किसी एकल डेटाबेस में केवल देखना चाहते हैं, तो यह प्रयास करें:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
मेरी प्राथमिकता कुछ के लिए है:
इस सूत्र में अन्य उत्तरों से एक साथ सिलाई करते हुए, मैं समाप्त करता हूं
select
name, type
from
mysql.proc
where
db = database()
order by
type, name;
... जो आपको इस तरह दिखने वाले परिणामों के साथ समाप्त करता है:
mysql> select name, type from mysql.proc where db = database() order by type, name;
+------------------------------+-----------+
| name | type |
+------------------------------+-----------+
| get_oldest_to_scan | FUNCTION |
| get_language_prevalence | PROCEDURE |
| get_top_repos_by_user | PROCEDURE |
| get_user_language_prevalence | PROCEDURE |
+------------------------------+-----------+
4 rows in set (0.30 sec)
इसे इस्तेमाल करो:
SHOW PROCEDURE STATUS;
प्रवीणकुमार_वी के पोस्ट पर एक बदलाव:
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE';
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'FUNCTION';
.. और इसलिए क्योंकि मुझे कुछ हाउसकीपिंग के बाद समय बचाने की जरूरत थी:
SELECT CONCAT(
"GRANT EXECUTE ON PROCEDURE `"
,`name`
,"` TO username@'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'PROCEDURE';
SELECT CONCAT(
"GRANT EXECUTE ON FUNCTION `"
,`name`
,"` TO username@'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'FUNCTION';
सिर्फ तुम्हारा दिखाने के लिए:
SELECT
db, type, specific_name, param_list, returns
FROM
mysql.proc
WHERE
definer LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
यदि आप वर्तमान चयनित डेटाबेस के लिए स्टोर प्रक्रिया को सूचीबद्ध करना चाहते हैं,
SHOW PROCEDURE STATUS WHERE Db = DATABASE();
यह मौजूदा चयनित डेटाबेस के आधार पर रूटीन की सूची देगा
अपने डेटाबेस में कार्यों को सूचीबद्ध करने के लिए अद्यतन
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="FUNCTION";
अपने डेटाबेस में रूटीन / स्टोर प्रक्रियाओं को सूचीबद्ध करने के लिए,
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="PROCEDURE";
अपने डेटाबेस में तालिकाओं को सूचीबद्ध करने के लिए,
select * from information_schema.TABLES WHERE TABLE_TYPE="BASE TABLE" AND TABLE_SCHEMA="YOUR DATABASE NAME";
अपने डेटाबेस में विचारों को सूचीबद्ध करने के लिए,
विधि 1:
select * from information_schema.TABLES WHERE TABLE_TYPE="VIEW" AND TABLE_SCHEMA="YOUR DATABASE NAME";
विधि 2:
select * from information_schema.VIEWS WHERE TABLE_SCHEMA="YOUR DATABASE NAME";
वर्तमान डेटाबेस की प्रक्रियाओं की सूची का मेरा पसंदीदा प्रतिपादन: नाम, पैरामीटर सूची, टिप्पणी
SELECT specific_name AS name, param_list AS params, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'PROCEDURE';
कार्यों के लिए रिटर्न जोड़ें:
SELECT specific_name AS name, param_list AS params, `returns`, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'FUNCTION';
सभी डेटाबेस के लिए उपयोगकर्ता की प्रक्रियाओं और कार्यों को सूचीबद्ध करें :
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
ORDER BY
`database`
,`type`
,`name`
;
उपयोग में डेटाबेस के लिए उपयोगकर्ता की प्रक्रियाओं और कार्यों को सूचीबद्ध करें :
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
AND
`ROUTINE_SCHEMA` = DATABASE()
ORDER BY
`type`
,`name`
;
object_name(@@procid)
SSMS में MySql में ऐसा कुछ है?