PostgreSQLにSQLファイルをインポートしたい。 pgadmin iiiを使用しています。 phpmyadminでsqlファイルを作成し、pgadmin iiiに同じファイルをインポートします。私は以下を行っていますが、うまくいきませんでした。 pgadmin iiiでデータベースのスキーマを選択し、その後、次のクエリを実行しようとします。
\i C:/Users/umair/Downloads/school_management_system(1).sql
しかし、それはエラーを生成し、エラーは:
ERROR: syntax error at or near "\"
LINE 1: \i C:/Users/umair/Downloads/school_management_system(1).sql
^
********** Error **********
ERROR: syntax error at or near "\"
SQL state: 42601
Character: 1
私を助けてください。
SQLファイルをインポートする最良の方法は、次のようにpsql
ツールを使用することだと思います。
psql -U postgres -h localhost -d my_database -f "C:/Users/umair/Downloads/school_management_system(1).sql"
PgAdminを介してプレーンな* sqlファイルをインポートすることはできません。 ( pg_restore -pgAdminがバックグラウンドで使用する)で作成されたカスタムインポートのみをサポートします。
このタスクにはpgAdminではなく コマンドライン を使用する必要があります。別の回答に対するコメントは、pgAdminからコマンドを実行したことを示しています。これは機能しません。
psql -U username -h localhost -d database_name < path/to/your/file.sql
-hはオプションであり、システムへの接続方法によって異なることに注意してください。
Windowsでは、psqlコマンドは通常のCMDコンソールウィンドウからのみ実行でき、gitがインストールされている場合に得られるようなbashウィンドウからは実行できません。 C:\ Program Files\PostgreSQL\9.4\binのような場所にpsql.exeがあるはずです。
@DrColossosは正しいです。このコマンドは、psql.exe実行可能ファイルが含まれているディレクトリのコマンドラインから使用する必要があります。
このコマンドを使用してすでにシステムにあるデータベースを置き換える場合は、コマンドを実行する前にそのデータベースを削除する必要があることに注意してください。
コマンドを実行した後に変なインデックス作成の問題が発生した場合は、修正方法について このチュートリアル を参照してください。
windowsを使用している場合は、pgsqlシェルを使用してサーバーとデータベースおよびユーザー情報を入力し、引用符なしで実行します。
\i D:/folder/your_table.sql