在psql中,如果有人输入'select * from user',你会得到类似下面的内容:
current_user
--------------
postgres
此背景下的用户是什么?
答案 0 :(得分:18)
在此上下文中,user
是一个保留的内部Postgres函数,表示登录到数据库的当前用户。
此查询也可以写为:
SELECT user;
哪个应该产生相同的东西。请注意,如果您想要实际引用或创建名为user
的表,则必须使用引号,或完全限定其所在的架构。例如:
CREATE TABLE "user"
(
id int2 not null
);
会起作用但是:
CREATE TABLE user
(
id int2 not null
);
会产生错误。
以下是其他系统信息功能的参考:
http://www.postgresql.org/docs/9.0/static/functions-info.html
答案 1 :(得分:3)
请参阅system functions上的Postgresql文档。
基本上“select * from user
”是Postgresql特定的查找当前用户的方法之一。它在功能上与使用current_user函数相同,例如:“select current_user()
”。
可在查询中用作表的其他特殊功能包括:
current_catalog
current_schema
答案 2 :(得分:1)
如果您正在寻找我应该在pg_user表中寻找的用户列表; SELECT * FROM pg_user;
您的查询从名为user的特殊功能的结果中获取所有数据。该函数返回current_user的用户名。