2008-09-06 14 views

उत्तर

88

आदेश है:

show triggers 

या आपके द्वारा सीधे INFORMATION_SCHEMA तालिका को एक्सेस कर सकते हैं:

select trigger_schema, trigger_name, action_statement 
from information_schema.triggers 
  • आप के बाद संस्करण 5.0.10 से ऐसा कर सकते हैं। TRIGGERS table is here के बारे में
  • में अधिक जानकारी।
+2

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

+0

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

+1

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

8

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

select * from information_schema.triggers where 
information_schema.triggers.trigger_name like '%trigger_name%' and 
information_schema.triggers.trigger_schema like '%data_base_name%' 
10

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

SHOW TRIGGERS LIKE '%trigger_name%'\G 

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

SHOW TRIGGERS\G 
9

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

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

यह आपको 22 कॉलम कुल MySQL संस्करण में दे देंगे: 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 
+0

स्कीमा से निपटने के दौरान मैं 'LIKE' का उपयोग करने से बचूंगा। मैंने वातावरण में काम किया है जहां ऐसा करने से त्रुटि प्रवण होगी जहां एक ग्राहक के पास "कंपनी" नामक डेटाबेस था और दूसरा नाम "company_project" था। मैं स्पष्टता और INFORMATION_SCHEMA और कॉलम के लिए कुंजीशब्दों को कैपिटल करने का भी सुझाव दूंगा, इसलिए यह स्पष्ट है कि आप नियमित डीबी से निपट नहीं रहे हैं। – AndrewWhalan