-1

次の関数を書きました。

-- 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;
  1. クエリSELECT sessions_get(1)を実行して、ユーザー ID 1 のセッション ID を取得できるようにしたいと考えています。また、返される列の名前をid.

    それは可能ですか?または、クエリは次のようにする必要がありますSELECT * FROM sessions_get(1)か? その場合は、 と書くだけで短くなりますSELECT sessions_get(1) as id。どちらが良いですか?

  2. SETOFこの関数は常に 0 行または 1 行を返すことがわかっているため、削除できますか? user_idテーブルの主キーであるため、これを知っていsessionsます。

4

2 に答える 2