PostgreSQLのエクスポートデータをMySQLにインポートする
も参照してください。(2008/04/16追記)
最近PostgreSQLにはご無沙汰してますが、
PostgreSQLのエクスポートデータをMySQLにインポートしてみました。
かつ、微妙にPostgreSQLとMySQLのカラムが異なってる場合の手順です。
PostgreSQLの以下のテーブルのデータをエクスポートし、
-
CREATE TABLE items (
-
item_id SERIAL PRIMARY KEY,
-
name VARCHAR(50),
-
price INTEGER,
-
color VARCHAR(20),
-
createtime timestamp NOT NULL DEFAULT current_timestamp,
-
delete_flag CHAR(1)
-
);
PostgreSQLでエクスポートしたファイルをMySQLの以下のテーブルにインポートします。
status_flagカラムが追加されています。
-
CREATE TABLE items (
-
item_id INTEGER NOT NULL AUTO_INCREMENT,
-
name VARCHAR(50),
-
price INTEGER,
-
color VARCHAR(20),
-
status_flag INTEGER,
-
createtime DATEMTIME
-
delete_flag CHAR(1)
-
);
まずは、PostgreSQLのデータをtsvファイルでエクスポートします。
-
su postgres
-
psql sampledb
-
—-
-
sampledb=#COPY items TO ‘/home/postgres/items.tsv’;
-
—-
次に、MySQLでインポートします。
-
su takahashi
-
mysql -u root -p sampledb
-
—-
-
mysql>LOAD DATA INFILE "/home/postgres/items.tsv" INTO TABLE items FIELDS TERMINATED BY ‘\t‘ (item_id,name,price,color,createtime,delete_flag);
-
—-
もちろん、元になかったカラムのデータ(ここではstatus_flag)は入りません。
手段は他にもいろいろあると思います。
あと、うまくいかないデータもあるかもしれません。