2017-12-07 10 views
0

、我々は`select current_user`と` select current_database() `はどちらもSQLクエリ文ですか? PostgreSQLでは

select current_user; 

select current_database(); 

により、現在のユーザーとデータベースを取得することができます両方のステートメントでSQLクエリで同じselectselectですか?

current_usercurrent_database()の両方の列名はありますか?

どのテーブルから選択しますか?

ありがとうございました。

答えて

3
  • select
  • current_database()
  • current_userも、「システム情報機能」で「システム情報関数」である任意の選択クエリで使用されるような選択は非常に同じである(下記の注を参照)

関数は通常パラメータを取りますので、これらのパラメータを保持するためにカッコで使用しますが、current_database()などの一部のシステム関数はパラメータを必要としませんが、空のかっこが残ります。

システム情報が "抽出セッションおよびシステム情報を" 関数を参照してください。https://www.postgresql.org/docs/current/static/functions-info.html

を注意

current_catalog、CURRENT_ROLE、CURRENT_SCHEMA、CURRENT_USER、 SESSION_USER、およびユーザーは、特別な構文上の地位を持っていますSQL:末尾のかっこなしで を呼び出さなければなりません。

+0

ありがとうございました。 current_userとcurrent_database()の両方のカラム名が返されますか? 選択したテーブルは何ですか? –

+0

いいえ、それらはテーブル内の列ではなく、値を返す関数です。 –

+0

「関数」という用語は、ほぼすべてのプログラミング言語で存在します。 javaとjavascriptの両方に機能があります。したがって、関数が表または列を必要とする必要はありません。 PostgreSQLのもう1つのタイプの関数は、2つ以上のアイテムを「連結」することです。これは、 'CONCAT( 'Hello'、 ''、 'World')'を選択すると、 '' Helloこれらのシステム関数current_userは、現在のセッションでアクティブなユーザの名前を「返す」 –

関連する問題