Tôi thường không tách các trình kích hoạt khỏi các bảng mà chúng có nghĩa là. Tôi đổ như thế này:
mysqldump -u... -p... --no-data --routines --triggers dbname > DBSchema.sql
Kiểm tra sự hiện diện của các thói quen và kích hoạt như thế này:
SELECT COUNT(1) FROM mysql.proc;
SELECT COUNT(1) FROM information_schema.triggers;
SELECT * FROM information_schema.triggers\G
Nếu bạn muốn thực hiện điều này cho tất cả các DB trong Trường hợp MySQL, hãy làm điều này:
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
Theo cách đó, các thủ tục được lưu trữ đi theo một kết xuất thường trình cho DB, trong khi lược đồ và các trình kích hoạt đi vào một kết xuất khác.
grep 'CREATE TRIGGER'