在psql中,如果输入“select * from user”,你会得到以下类似的结果:
current_user
--------------
postgres
在这个上下文中,“user”是什么意思?
在psql中,如果输入“select * from user”,你会得到以下类似的结果:
current_user
--------------
postgres
在这个上下文中,“user”是什么意思?
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
()
,并且可以通过 SET
命令进行更改。 - Mike Christensen请参阅Postgresql文档中的系统函数。
基本上,"select * from user
"是查找当前用户的Postgresql特定方式之一。它在功能上与使用current_user函数相同,例如:"select current_user()
"。
其他可用作查询表格的特殊函数包括:
current_catalog
current_schema
SELECT
被定义为接受函数名(http://www.postgresql.org/docs/8.0/static/sql-select.html)。例如,`SELECT * from version();` 可以正常工作。 - Martin Smith如果您正在寻找要查找的pg_user表中的用户列表; SELECT * FROM pg_user;
您的查询将获取名为user的特殊函数结果的所有数据。该函数返回当前用户的用户名。
current_timestamp
会发生相同的行为。猜测Postgres在如何使用函数方面非常灵活。 - Martin SmithSELECT user()
吗? - ypercubeᵀᴹ