私はPostgreSQLの初心者です。
USE
MySQLやMSSQLServerのコマンドのように、Postgresのクエリエディタから別のデータベースに接続したい。
インターネットを検索して見つけましたが、 psql\c databasename
でのみ実行されます。PostgreSQLクエリエディタから試してみると、構文エラーが発生します。
pgscriptingでデータベースを変更する必要があります。誰かがそれを行う方法を知っていますか?
私はPostgreSQLの初心者です。
USE
MySQLやMSSQLServerのコマンドのように、Postgresのクエリエディタから別のデータベースに接続したい。
インターネットを検索して見つけましたが、 psql\c databasename
でのみ実行されます。PostgreSQLクエリエディタから試してみると、構文エラーが発生します。
pgscriptingでデータベースを変更する必要があります。誰かがそれを行う方法を知っていますか?
接続を取得すると、PostgreSQL
常に特定のデータベースに接続されます。別のデータベースにアクセスするには、新しい接続を取得する必要があります。
psqlで使用\c
すると、指定されたデータベースや資格情報を使用して、古い接続が閉じられ、新しい接続が取得されます。まったく新しいバックエンドプロセスとすべてを手に入れることができます。
接続時に使用するデータベースを指定する必要があります。スクリプトにpsqlを使用する場合は、「\cname_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に設定します。
database
私が直面したMySQLからの移行中の基本的な問題は、PostgreSQLでも同じ用語だと思っていたのですが、そうではありません。したがって、データベースをアプリケーションまたはから切り替える場合pgAdmin
、期待どおりの結果は得られません。私の場合と同様に、顧客ごとに個別のスキーマ(ここではPostgreSQLの用語を考慮)と個別の管理スキーマがあります。したがって、アプリケーションでは、スキーマを切り替える必要があります。
このために、SET search_path
コマンドを使用できます。これにより、現在のスキーマが現在のセッションに指定されたスキーマ名に切り替わります。
例:
SET search_path = different_schema_name;
これにより、current_schemaがセッションに指定されたスキーマに変更されます。恒久的に変更するには、postgresql.conf
ファイルに変更を加える必要があります。
最初に接続するときにこのコンマを使用しますpsql
=# psql <databaseName> <usernamePostgresql>
PgAdmin 4、GUIツール:データベース間の切り替え
適切なデータベースにクエリを実行していることを確認するには、次のクエリを発行します。
SELECT session_user, current_database();
set search_path = 'schema name here'
postgresに接続している間、接続するにはデフォルトのデータベースを選択する必要があります。何もない場合は、デフォルトとして「postgres」を使用できます。
dbeaverを使用してpostgresに接続できます。UIは良いです