我写了以下函数:
-- Authenticate: Get session_id with user_id
CREATE OR REPLACE FUNCTION sessions_get(bigint) RETURNS SETOF char(32) AS
$$
SELECT strip_hyphens(id) as id FROM sessions WHERE user_id = $1;
$$
LANGUAGE SQL;
我希望能够运行查询
SELECT sessions_get(1)
以获取用户 ID 为 1 的会话 ID。而且,我希望返回的列的名称为id
.那可能吗?或者,查询必须是
SELECT * FROM sessions_get(1)
?在这种情况下,只写SELECT sessions_get(1) as id
. 哪个更好?我可以删除
SETOF
,因为我知道此函数将始终返回 0 或 1 行吗?我知道这是因为user_id
它是sessions
表的主键。