人気記事

広告

記事検索

MOVION.netについて

WEB技術に関することや、気になるWEBサイトなどについて個人的なメモを残すためのブログです。

その他運営サイト

かかわっているサイト

カラムを変更したPostgreSQLのエクスポートデータをMySQLにインポートする(その2)

では、 status_flagカラムが追加される場合ですが、もともとあるカラムがなくなる場合はちょっと面倒なので、以下はその1つの方法です。

PostgreSQL

  1. CREATE TABLE items (
  2. item_id SERIAL PRIMARY KEY,
  3. name VARCHAR(50),
  4. price INTEGER,
  5. color VARCHAR(20),
  6. createtime timestamp NOT NULL DEFAULT current_timestamp,
  7. delete_flag CHAR(1)
  8. );

MySQL
status_flagカラムを追加し、colorカラムは削除したいものとします。

  1. CREATE TABLE items (
  2. item_id INTEGER NOT NULL AUTO_INCREMENT,
  3. name VARCHAR(50),
  4. price INTEGER,
  5. status_flag INTEGER,
  6. createtime DATEMTIME
  7. delete_flag CHAR(1)
  8. );

どのタイミングでカラムを削除するか、まあどこでも出来るわけですが、
個人的に手っ取り早いかなぁと思う手順です。

PostgreSQLで、テーブル定義を変更しちゃったほうがよさそうなので、加工用でデータベースを作成。

  1. su postgres
  2. createdb sampledb_tmp
  3. pg_dump sampledb > sampledb.20080416.dump
  4. cat sampledb.20080416.dump | psql sampledb_tmp
  5. psql sampledb_tmp

で、テーブルのカラム構成を変更したテーブル(items_tmp)を作成。

  1. SELECT item_id,name,price,NULL AS status_flag,createtime,delete_flag INTO TABLE items_tmp FROM items;

そして後はエクスポート

  1. COPY items_tmp TO ‘/home/postgres/items.tsv’;

次に、MySQLでインポート。

  1. su takahashi
  2. mysql -u root -p sampledb
  3. —-
  4. mysql>LOAD DATA INFILE "/home/postgres/items.tsv" INTO TABLE items FIELDS TERMINATED BY \t;
  5. —-
add to hatena hatena.comment add to del.icio.us add to livedoor.clip add to Yahoo!Bookmark

この記事にはまだコメントがついていません。

Comment Feed Comment feed for this entry

Trackback URI :

コメントをどうぞ

段落や改行は自動挿入です。メールアドレスはサイト上では非表示です。