คำสั่งในการแสดงรายการทริกเกอร์ทั้งหมดในฐานข้อมูล MySQL คืออะไร?
คำสั่งในการแสดงรายการทริกเกอร์ทั้งหมดในฐานข้อมูล MySQL คืออะไร?
คำตอบ:
คำสั่งสำหรับแสดงรายการทริกเกอร์ทั้งหมดคือ:
show triggers;
หรือคุณสามารถเข้าถึงINFORMATION_SCHEMA
ตารางได้โดยตรงโดย:
select trigger_schema, trigger_name, action_statement
from information_schema.triggers
TRIGGERS
SHOW TRIGGERS
คุณต้องมีTRIGGER
สิทธิ์สำหรับฐานข้อมูลและตารางนั้น หากคุณเข้าสู่ระบบ MySQL ด้วยผู้ใช้ที่ไม่มีสิทธิ์การดำเนินการSHOW TRIGGERS
จะไม่ส่งคืนอะไรเลยแทนที่จะส่งข้อผิดพลาด ซึ่งอาจทำให้เกิดความสับสนหากคุณไม่ทราบถึงข้อกำหนดสิทธิพิเศษ
ฉันหวังว่ารหัสต่อไปนี้จะให้ข้อมูลเพิ่มเติมแก่คุณ
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
LIKE
เมื่อจัดการกับสคีมา ฉันทำงานในสภาพแวดล้อมที่การทำเช่นนั้นจะเกิดข้อผิดพลาดได้ง่ายซึ่งลูกค้ามีฐานข้อมูลชื่อ "บริษัท " และอีกชื่อหนึ่งชื่อ "company_project" ฉันขอแนะนำให้ใช้ KEYWORDS เป็นตัวพิมพ์ใหญ่เพื่อความชัดเจนและ INFORMATION_SCHEMA และคอลัมน์ที่นั่นดังนั้นจึงชัดเจนว่าคุณไม่ได้จัดการกับฐานข้อมูลปกติ
คุณสามารถใช้ด้านล่างเพื่อค้นหาคำจำกัดความของทริกเกอร์โดยเฉพาะ
SHOW TRIGGERS LIKE '%trigger_name%'\G
หรือด้านล่างเพื่อแสดงทริกเกอร์ทั้งหมดในฐานข้อมูล จะใช้ได้กับ MySQL 5.0 ขึ้นไป
SHOW TRIGGERS\G
สำหรับการแสดงทริกเกอร์เฉพาะในสคีมาเฉพาะคุณสามารถลองทำดังต่อไปนี้:
select * from information_schema.triggers where
information_schema.triggers.trigger_name like '%trigger_name%' and
information_schema.triggers.trigger_schema like '%data_base_name%'