揮発性のメモ2

http://d.hatena.ne.jp/iww/

トリガー一覧表示

トリガー名、イベント、対象テーブル の一覧を表示する

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でトリガーを書いたり消したりして、トリガー名にスペースが入ってたりすると 正しく動作しない。
そんなときは手で一旦消して綺麗にすること。