echo "SELECT * FROM [TABLE_Name] INTO OUTFILE '/opt/tmp/[DB_Name]/[TABLE_Name].csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"';" | mysql -u root [DB_Name]これを各テーブルごとにやってく。
excerptに変な以下のコマンドで取り除いてく。
----------
,"あああ","\ ←\マーク
もじもじ",2,3
----------
が入る。
echo "COPY [TABLE_Name] FROM '/opt/tmp/[DB_Name]/[TABLE_Name].csv' WITH CSV NULL AS '\\\\N' escape '\\\\' ;" | psql -U postgres [DB_Name]auto incrementだったcolumnのlastIDを揃える
ERROR: duplicate key violates unique constraintとか出たらindexのlast_valueと該当tableのselect max(id) ...の値が等しいか確認。違っていたらserial型でエラーになるのでsetvalでlast_valueを更新する。
select setval('[TABLE_Name]_id_seq', (select max(id) from [TABLE_Name] ));これでシーケンスのIDも一致する。
http://kapi.jp/kapi_blog/217
2009年03月03日
関連カテゴリ Postgres