[pgsql-jp: 35005] Re: accessのmdb のテーブルをpostgresql へ移行したい
tomson
tomson_lpcjp @ yahoo.co.jp
2005年 3月 10日 (木) 22:11:12 JST
こんばんは。tomsonともうします。
> 別FreeBSDサーバー内にpostgresqlをインストールしましたので
> そこへyakuhin_data.mdbのテーブルを移行させたいと考えております。
テーブル作製スクリプトは書かれましたか?
もしくはなんらかのツールを使って、CREATE TABLEの入ったスクリプトを用意す
る必要がありますね。
Access 、SQLServerのsql文はSQL92/99とは多少違っていますので、ご注意く
ださい。
Postgresqlのドキュメントを見て、
http://www.postgresql.jp/document/pg745doc/html/datatype.html
カラム属性のデータ型を決定し、制約などもかいてください。
次に、access mdbのデータをcsv等で外部テキストファイルにエクスポートしま
す。区切り文字にはカンマ記号を使います。
マルチバイトの文字が入っている場合には、忘れずに文字コードを変換して置き
ましょう。
EUC-JPに変換し,改行コードをLFにしておけば、間違いないでしょう。
以上がWindows側での操作です。
次に、BSD側での操作ですが、
$PGDATA/postgresql.confで、tcp_socket="true"のコメントが外れているかどう
か確認し、必要ならば、pg_hba.confでアクセスを制限します。
ここらへんの説明は、シーラカンス本に詳しいですので、よく読んで設定して見
てください。案外簡単にできることに驚かれるかもしれません。
次に、データベースを作る必要があります。普通は、psqlを実行するユーザー名
でデータベースを作っておけば、コマンドラインからpsqlを実行すればそのまま
接続するようになっています。
なのでコマンドラインから以下のように操作します。
su postgres
bash$createuser psqlを使うユーザー
bash$createdb -U psqlを使うユーザー名
次にデータベースユーザーを作る権限与えるかどうかを聞かれるので n
次にデータベースを作る権限を与えるかどうかをきかれるので n
次にpsqlを実行するユーザーでログイン
bash$su psqlを使うユーザー
つぎにpsqlを実行します。
psqlを使うユーザー$psql
サーバーのpsqlコマンドで \i 先ほどwindowsで作ったSQLスクリプトファイル名
を実行し、テーブルを作ります。
psqlを使うユーザー=>\i SQLスクリプト名
ここでエラーが発生するようであれば、スクリプトの内容をよく確認し、
本当にそのデータ型がposqgresqlでサポートされているのか、調べてください。
また、シーラカンス本をよく確認し、CREATE TABLEの構文に誤りがないか、細部
にまで目を通してください。
テーブルが作製されたら、次に先ほどWindowsで作ったCSVファイルのデータをテ
ーブルにコピーしてやります。
psqlを使うユーザー=>\copy テーブル名 from csvファイル名のパス名
改行コードが違うと、エラーになりますので、注意してください。
以上でデータの移行は終りです。
細かいことは、御自分で勉強なさってください。
WindowsのDBでは経験できなかったような、安定性と正確さをご堪能いただける
と思いますよ。
Good Luck!
pgsql-jp メーリングリストの案内