web-dev-qa-db-ja.com

PostgreSQLの "use database_name"コマンド

私はPostgreSQLの初心者です。

MySQLやMS SQL ServerのUSEコマンドのように、Postgresのクエリエディタから他のデータベースに接続したいのです。

インターネットを検索して\c databasenameを見つけましたが、それは psql でのみ動作します。 PostgreSQLクエリエディタから試してみると、構文エラーが発生します。

私はpgscriptingによってデータベースを変更しなければなりません。誰もがそれを行う方法を知っていますか?

301
sam

PostgreSQLへの接続を取得すると、常に特定のデータベースへの接続になります。別のデータベースにアクセスするには、新しい接続を取得する必要があります。

Psqlで\cを使用すると、指定されたデータベースや資格情報を使用して、古い接続を閉じて新しい接続を取得します。まったく新しいバックエンドプロセスとすべてのものが手に入ります。

319
kgrittn

接続時に使用するデータベースを指定する必要があります。スクリプトにpsqlを使いたい場合は、 "\ c name_database"を使うことができます。

user_name=# CREATE DATABASE testdatabase; 
user_name=# \c testdatabase 

この時点であなたは次のような出力を見るかもしれません

You are now connected to database "testdatabase" as user "user_name".
testdatabase=#

プロンプトがどのように変わるかに注目してください。歓声、これも探し求めているだけで、MySQLと比較してpostgreSQLに関する情報が少なすぎて、私の見解ではそれ以外の情報は少なすぎる。

195
Eugene

PgAdminではあなたも使うことができます

Search_pathをyour_db_nameに設定します。

16
Bart De Boeck

私が直面していたMySQLから移行する際の基本的な問題は、PostgreSQLでもdatabaseという用語は同じであると思いましたが、違います。そのため、データベースをアプリケーションまたはpgAdminから切り替えようとした場合、結果は期待どおりにはなりません。私の場合のように、私たちは顧客ごとに別々のスキーマ(ここではPostgreSQLの用語を考慮しています)と別々の管理スキーマを持っています。アプリケーションでは、スキーマを切り替える必要があります。

これには、SET search_pathコマンドを使用できます。これは、現在のスキーマを現在のセッションの指定されたスキーマ名に切り替えます。

例:

SET search_path = different_schema_name;

これにより、current_schemaがセッションに指定されたスキーマに変更されます。恒久的に変更するには、postgresql.confファイルを変更する必要があります。

7
VPK

最初にpsqlに接続するときにこのコマンドを使用してください

=# psql <databaseName> <usernamePostgresql>
0
Sukma Saputra