আপনি কীভাবে একটি মাইএসকিউএল ডাটাবেসে সমস্ত ট্রিগার তালিকাভুক্ত করবেন?


102

মাইএসকিউএল ডাটাবেসে সমস্ত ট্রিগার তালিকাভুক্ত করার আদেশ কী?

উত্তর:


154

সমস্ত ট্রিগার তালিকার জন্য আদেশটি হ'ল:

show triggers;

অথবা আপনি INFORMATION_SCHEMAসরাসরি টেবিলটি অ্যাক্সেস করতে পারেন :

select trigger_schema, trigger_name, action_statement
from information_schema.triggers
  • আপনি 5.0.10 সংস্করণ থেকে এটি করতে পারেন।
  • TRIGGERSটেবিল সম্পর্কে আরও তথ্য এখানে

4
আমি সরাসরি তথ্য_স্কেমার অ্যাক্সেসের পরিবর্তে "ট্রিগারগুলি দেখান" ক্যোয়ারীটি ব্যবহার করার পরামর্শ দিই - সার্ভারে আপনার কাছে হাজারেরও বেশি ডাটাবেস থাকলে একবার "ট্র্যাগারগুলি দেখান" এর অসামান্য পারফরম্যান্স থাকার পরে খুব ধীর হয়ে যাবে।
মার্টিন তাজুর

ধন্যবাদ এফপিআর দ্বিতীয় "জটিল" সংস্করণ। প্রথমটি কোনও একটি হোস্টে (পরিবর্তনটি জানেন না) কাজ করে না ...
ইউজারলন্ড

4
নোট করুন যে আপনার SHOW TRIGGERSপ্রয়োজন যে TRIGGERসেই ডাটাবেস এবং সারণীর জন্য অধিকার আছে । আপনি যদি একটি অনিবদ্ধ ব্যবহারকারীর সাথে মাইএসকিউএল এ লগইন করেন তবে এক্সিকিউট করা SHOW TRIGGERSত্রুটি ছুঁড়ে ফেলার পরিবর্তে কিছুই ফিরিয়ে দেয় না। আপনি সুবিধাগুলির প্রয়োজনীয়তা সম্পর্কে সচেতন না হলে এটি বিভ্রান্তিকর হতে পারে।
ক্রিস্টোফার শুল্টজ

14

আমি আশা করি নিম্নলিখিত কোডগুলি আপনাকে আরও তথ্য দেবে।

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

এটি আপনাকে মাইএসকিউএল সংস্করণে মোট 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

4
আমি LIKEস্কিমা নিয়ে কাজ করার সময় ব্যবহার করা এড়াতে চাই । আমি এমন পরিবেশে কাজ করেছি যেখানে এটি করা ত্রুটিযুক্ত প্রবণতা হবে যেখানে ক্লায়েন্টের "কোম্পানী" নামক একটি ডাটাবেস এবং অন্যটি "Company_project" নামে পরিচিত ছিল। আমি স্পষ্টতা এবং INFORMATION_SCHEMA এবং সেখানকার কলামগুলিতে KEYWORDS কে মূলধন করার পরামর্শ দিচ্ছি যাতে এটি স্পষ্ট হয় যে আপনি একটি নিয়মিত ডিবি নিয়ে কাজ করছেন না।
অ্যান্ড্রুওয়ালান

13

আপনি একটি নির্দিষ্ট ট্রিগার সংজ্ঞা পেতে নীচে ব্যবহার করতে পারেন।

SHOW TRIGGERS LIKE '%trigger_name%'\G

বা ডাটাবেসে সমস্ত ট্রিগার দেখানোর জন্য নীচে এটি মাইএসকিউএল 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%'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.