トリガー名、イベント、対象テーブル の一覧を表示する
mysql -uUSERID -pPASSWD DBNAME -e "SHOW TRIGGERS;" -N | cut -f1,2,3
全てのトリガーを一括で保存する
mysqldump -ntd -uUSERID -pPASSWD DBNAME --tab=/tmp/triggers find /tmp/triggers -size 0 -delete
一応テーブルごとに分けて出力する
ただトリガの無いテーブルも空ファイルで出力されちゃうので、適当に削除する
全てのトリガーを一括で削除する
mysql -uUSERID -pPASSWD DBNAME -e "SHOW TRIGGERS;" -N | \ cut -f1 | \ xargs -n1 -IXXXX echo 'DROP TRIGGER IF EXISTS `XXXX`;' | \ mysql -uUSERID -pPASSWD DBNAME
全てのトリガーを一括で復旧する
cat /tmp/triggers/*.sql | mysql -uUSERID -pPASSWD DBNAME
phpMyAdminでトリガーを書いたり消したりして、トリガー名にスペースが入ってたりすると 正しく動作しない。
そんなときは手で一旦消して綺麗にすること。