書き残しておこうと思います。
mysqldumpあれこれ。
mysqldumpで、特定のテーブルだけ(複数可)を指定するときは、
$> mysqldump -u user -p pass database table1 table2 ・・・ >dump.sql
これで基本的にはOK。
どこかのテーブルの主キー(数値)が、テーブル名にくっついているときとか、あるかもしれない。
そんなテーブルがたくさんあるかも知れない。
data_1、data_2、・・・とか。
・・・かもしれない。ね。
キーの配列を取得したいので、こんな感じでシェル書きます。
id_list=(`mysql -u user -p pass database -e ”select id from theTable;”`)sqlの部分はご自由に。
で、その配列の値を使って、テーブル名のリストを作ります。こんな感じ。
index=0
for (( i=1; i<${#id_list[*]}; i++))
{
table_list[$index]=”vote_answer_${id_list[$i]}”
index=$[${index}+1]
}
id_list[0]の中には、カラム名の” id ”が入ってしまっているので、そこは不要。
なので、for文の i は1からにしてます。
${#id_list[*]}は、listの要素数を取得する書き方です。javaだとlist.size()ってとこでしょうか。
あとは、mysqldumpです。最初に書いたやつです。
mysql -u user -p pass ${table_list[@]} > dump.sql
これでちょっと幸せになれます。
※ 間違い等見つかりましたら、ぜひご指摘願います!
(2009-02-27 追記)
上記に間違いがありましたので、訂正いたしました。