web-dev-qa-db-ja.com

PostgreSQL 8.4に既存の* .sqlファイルをインポートする方法は?

PostgreSQL 8.4を使用していますが、データベースにインポートする* .sqlファイルがいくつかあります。どうすればできますか?

94
Badr

コマンドラインで最初にpsqlが存在するディレクトリに到達し、次のようなコマンドを記述します:

psql [database name] [username]

次にEnterを押しますpsqlはパスワードを要求し、ユーザーにパスワードを与えます:

次に書く

> \i [full path and file name with extension]

次に、Enterを押して挿入を完了します。

74
Badr

コマンドラインから:

psql -f 1.sql
psql -f 2.sql

psqlプロンプトから:

\i 1.sql
\i 2.sql

特定の順序でファイルをインポートする必要がある場合があることに注意してください(例:データ操作前のデータ定義)。 bash Shell(GNU/Linux、Mac OS X、Cygwin)があり、ファイルがアルファベット順にインポートされる場合 、次のコマンドを使用できます。

for f in *.sql ; do psql -f $f ; done

psqlアプリケーションのドキュメントを次に示します(ありがとう、フランク): http://www.postgresql.org/docs/current/static/app-psql.html

132
Bolo

さて、私が知っている最短の方法は次のとおりです:

psql -U {user_name} -d {database_name} -f {file_path} -h {Host_name}

database_name:ファイルデータを挿入するデータベース。

file_path:インポートを実行するファイルへの絶対パス。

Host_name:ホストの名前。開発目的では、ほとんどがlocalhostです。

コンソールでこのコマンドを入力すると、パスワードを入力するよう求められます。

32
Arslan Ali

「/」と「\」に注意してください。 Windowsでもコマンドの形式は次のとおりです。

\i c:/1.sql
24
sofiane

接続サービスファイル (lookup/google 'psql接続サービスファイル')を使用して常に優先される

それから単に:

psql service={yourservicename} < {myfile.sql}

yourservicenameは、サービスファイルのセクション名です。

1
Ted Rybicki