mysqlで複数のデータベースを操作

MySQLで複数のデータベースに同一の操作をしたいと思ったのですが、それっぽいサンプルが見つからなかったので適当に書いてみました。

#!/bin/sh

foreachtable() {
dbs=`echo 'show databases' | mysql ${@:2} | sed 1d`

for db in $dbs; do
  echo $1 | mysql ${@:2} $db
done
}

構文としては、以下のようなものを想定しています。

foreachtable ${query} ${options}

パスワードいちいち入力するのが面倒ですが、例えば

foreachtable 'select tables' -uhogeuser -p

みたいな感じにして使えます。