आप एक MySQL डेटाबेस में सभी ट्रिगर्स को कैसे सूचीबद्ध करते हैं?


100

MySQL डेटाबेस में सभी ट्रिगर्स को सूचीबद्ध करने के लिए कमांड क्या है?

जवाबों:


151

सभी ट्रिगर को सूचीबद्ध करने की कमान है:

show triggers;

या आप INFORMATION_SCHEMAसीधे टेबल तक पहुंच सकते हैं :

select trigger_schema, trigger_name, action_statement
from information_schema.triggers

2
मैं सीधे सूचना तक पहुँचने के बजाय "SHOW TRIGGERS" क्वेरी का उपयोग करने की सलाह दूंगा - बाद में आप सर्वर पर हजार से अधिक डेटाबेस होने के बाद बहुत धीमी हो जाएंगे जबकि "SHOW TRIGGERS" का अभी भी उत्कृष्ट प्रदर्शन है।
मार्टिन ताजूर

धन्यवाद fpr दूसरा "जटिल" संस्करण। पहला काम मेजबानों में से एक पर (Resion नहीं पता) ...
userlond

4
ध्यान दें कि SHOW TRIGGERSआपको TRIGGERउस डेटाबेस और तालिका के लिए विशेषाधिकार की आवश्यकता है । यदि आप एक अप्रभावित उपयोगकर्ता के साथ MySQL में प्रवेश करते हैं, तो निष्पादन SHOW TRIGGERSएक त्रुटि को फेंकने के बजाय कुछ भी नहीं लौटाएगा। यदि आप विशेषाधिकार की आवश्यकता से अवगत नहीं हैं तो यह भ्रामक हो सकता है।
क्रिस्टोफर शुल्त्स

14

मुझे उम्मीद है कि निम्नलिखित कोड आपको अधिक जानकारी देगा।

select * from information_schema.triggers where 
information_schema.triggers.trigger_schema like '%your_db_name%'

यह आपको MySQL संस्करण में कुल 22 कॉलम देगा: 5.5.27 और इसके बाद के संस्करण

TRIGGER_CATALOG 
TRIGGER_SCHEMA
TRIGGER_NAME
EVENT_MANIPULATION
EVENT_OBJECT_CATALOG
EVENT_OBJECT_SCHEMA 
EVENT_OBJECT_TABLE
ACTION_ORDER
ACTION_CONDITION
ACTION_STATEMENT
ACTION_ORIENTATION
ACTION_TIMING
ACTION_REFERENCE_OLD_TABLE
ACTION_REFERENCE_NEW_TABLE
ACTION_REFERENCE_OLD_ROW
ACTION_REFERENCE_NEW_ROW
CREATED 
SQL_MODE
DEFINER 
CHARACTER_SET_CLIENT
COLLATION_CONNECTION
DATABASE_COLLATION

1
LIKEस्कीमा के साथ काम करते समय मैं इसका उपयोग करने से बचता हूँ । मैंने उन वातावरणों में काम किया है जहां ऐसा करने से त्रुटि हो सकती है जहां एक ग्राहक के पास "कंपनी" नाम का एक डेटाबेस था और दूसरे का नाम "company_bject" है। मैं यह भी सुझाव दूंगा कि स्पष्टता और जानकारी के लिए KEYSDS_SCHEMA और वहां के कॉलम इसलिए यह स्पष्ट है कि आप एक नियमित DB के साथ काम नहीं कर रहे हैं।
एंड्रयूवालेन

13

आप एक विशेष ट्रिगर परिभाषा खोजने के लिए नीचे का उपयोग कर सकते हैं।

SHOW TRIGGERS LIKE '%trigger_name%'\G

या डेटाबेस में सभी ट्रिगर दिखाने के लिए नीचे। यह MySQL 5.0 और इसके बाद के संस्करण के लिए काम करेगा।

SHOW TRIGGERS\G

9

किसी विशेष स्कीमा में एक विशेष ट्रिगर दिखाने के लिए आप निम्नलिखित प्रयास कर सकते हैं:

select * from information_schema.triggers where 
information_schema.triggers.trigger_name like '%trigger_name%' and 
information_schema.triggers.trigger_schema like '%data_base_name%'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.