Database JUNKY

MySQL,MariaDBを中心としたブログです

SQLでトリガーのみのmysqldumpコマンドを生成する

日々運用を続けている中でたまーーーにでてくる、定義のみのバックアップ、ストアドプロシージャのみバックアップする、トリガーのみをバックアップなど、そのイベントが発生するたびに、googleで調べるのが面倒なため、前回同様、ほぼ自分用にメモ状態になっております。ただ普通に書いてもつまらないので、SQLでmysqldumpコマンドを生成するように作ってみました。

logomysql

トリガーのみダンプする

  • Trigger only dump SQL Information_schemaを利用して、トリガーのみのmysqldumpコマンドを生成します。MySQLの標準で持っているスキーマは予め除外して、同インスタンス内に含まれるスキーマはすべてコマンドを作成するって感じです [SQL]set @MYUSERID='myadmin' ; set @MYPASSWD='password' ; set @BPATH=' /var/dump/' ; select 'mysqldump -u' || @MYUSERID || ' -p' || @MYPASSWD || ' --triggers --no-create-info --no-data ' || SCHEMA_NAME || @BPATH || SCHEMA_NAME || '_triggers_dump ' as trigger_dump_sql from information_schema.SCHEMATA where SCHEMA_NAME not in ('information_schema','mysql','performance_schema') ; [/SQL]
  • 上記の実行結果は以下の通り [SHELL] +---------------------------------------------------------------------------------------------------------------------+ | trigger_dump_sql | +---------------------------------------------------------------------------------------------------------------------+ | mysqldump -umyadmin -ppassword --triggers --no-create-info --no-data fulltextdb /var/dump/fulltextdb_triggers_dump | | mysqldump -umyadmin -ppassword --triggers --no-create-info --no-data wp_squad /var/dump/wp_squad_triggers_dump | +---------------------------------------------------------------------------------------------------------------------+ [/SHELL]