私はPostgreSQLの初心者です。
MySQLやMS SQL ServerのUSE
コマンドのように、Postgresのクエリエディタから他のデータベースに接続したいのです。
インターネットを検索して\c databasename
を見つけましたが、それは psql でのみ動作します。 PostgreSQLクエリエディタから試してみると、構文エラーが発生します。
私はpgscriptingによってデータベースを変更しなければなりません。誰もがそれを行う方法を知っていますか?
PostgreSQL
への接続を取得すると、常に特定のデータベースへの接続になります。別のデータベースにアクセスするには、新しい接続を取得する必要があります。
Psqlで\c
を使用すると、指定されたデータベースや資格情報を使用して、古い接続を閉じて新しい接続を取得します。まったく新しいバックエンドプロセスとすべてのものが手に入ります。
接続時に使用するデータベースを指定する必要があります。スクリプトに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に関する情報が少なすぎて、私の見解ではそれ以外の情報は少なすぎる。
PgAdminではあなたも使うことができます
Search_pathをyour_db_nameに設定します。
私が直面していたMySQLから移行する際の基本的な問題は、PostgreSQLでもdatabase
という用語は同じであると思いましたが、違います。そのため、データベースをアプリケーションまたはpgAdmin
から切り替えようとした場合、結果は期待どおりにはなりません。私の場合のように、私たちは顧客ごとに別々のスキーマ(ここではPostgreSQLの用語を考慮しています)と別々の管理スキーマを持っています。アプリケーションでは、スキーマを切り替える必要があります。
これには、SET search_path
コマンドを使用できます。これは、現在のスキーマを現在のセッションの指定されたスキーマ名に切り替えます。
例:
SET search_path = different_schema_name;
これにより、current_schemaがセッションに指定されたスキーマに変更されます。恒久的に変更するには、postgresql.conf
ファイルを変更する必要があります。
最初にpsql
に接続するときにこのコマンドを使用してください
=# psql <databaseName> <usernamePostgresql>