PostgreSQL内から現在のデータベースの名前を取得する方法は?


81

\c <database_name>PostgreSQLで使用すると、指定されたデータベースに接続します。

現在のデータベースの名前はどのように決定できますか?

次を入力:

my_db> current_database();

生成するもの:

ERROR:  syntax error at or near "current_database"
LINE 1: current_database();

7
select current_database()
ミハイ14

1
前にSELECTを追加します。
ミハイ14

4
プロンプトがmy_dbすでに現在のデータベースを示していることを知っていますか?
a_horse_with_no_name 14

回答:


131

この関数current_database()は、現在のデータベースの名前を返します。

 SELECT current_database();

これはSQL関数なので、SQLステートメントの一部として呼び出す必要があります。PostgreSQLは、スタンドアロンクエリとしての関数の実行をサポートしておらず、CALL他のSQLエンジンのようなステートメントがないためSELECT、関数の呼び出しに使用するだけです。


33

psqlで「\ conninfo」を使用できます


psqlバージョン9.1。psqlただし、最近では基本的にすべてのクライアントが対象になります。
dezso 14年

26
\c

のようなものを印刷します

You are now connected to database "foobar" as user "squanderer".

新しい接続を作成してもかまわない場合は、これを使用してください。すべてのパラメータなしの\ connect(\ cと短縮)は、現在の接続と同じ新しい接続を作成します。現在の接続は閉じられています。

http://www.postgresql.org/docs/9.3/static/app-psql.htmlの \ connectコマンド仕様を参照してください

dbname、username、host、またはportのいずれかが省略された場合(...)、前の接続のそのパラメーターの値が使用されます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.