ปกติฉันจะไม่แยกทริกเกอร์จากตารางที่มีไว้สำหรับ ฉันถ่ายโอนข้อมูลเช่นนี้:
mysqldump -u... -p... --no-data --routines --triggers dbname > DBSchema.sql
ตรวจสอบสถานะของกิจวัตรและทริกเกอร์ดังนี้:
SELECT COUNT(1) FROM mysql.proc;
SELECT COUNT(1) FROM information_schema.triggers;
SELECT * FROM information_schema.triggers\G
หากคุณต้องการทำสิ่งนี้ให้กับฐานข้อมูลทั้งหมดในอินสแตนซ์ MySQL ให้ทำดังนี้
mysql -u... -p... -A -N -e"SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','mysql')" > /tmp/dblist.txt
for DB in `cat /tmp/dblist.txt`
do
mysqldump -u... -p... --no-data --no-create-info --routines dbname > ${DB}-routines.sql
mysqldump -u... -p... --no-data --triggers dbname > ${DB}-schema-triggers.sql
done
ด้วยวิธีนี้โพรซีเดอร์ที่เก็บจะไปในดัมพ์รูทีนสำหรับ DB ขณะที่สกีมาและทริกเกอร์ไปที่ดัมพ์อื่น
grep 'CREATE TRIGGER'