web-dev-qa-db-ja.com

何も返さない関数を作成する方法

pl/pgsqlで関数を書きたいです。 PostgresEnterprise Manager vを使用し、シェルを使用して関数を作成していますが、シェルでは戻り値の型を定義する必要があります。戻り値の型を定義しないと、関数を作成できません。

結果を返さずに関数、つまり新しいテーブルを作成する関数を作成するにはどうすればよいですか?

83
Kabi

以下のようにRETURNS voidを使用します。

CREATE FUNCTION stamp_user(id int, comment text) RETURNS void AS $$
    #variable_conflict use_variable
    DECLARE
        curtime timestamp := now();
    BEGIN
        UPDATE users SET last_modified = curtime, comment = comment
          WHERE users.id = id;
    END;
$$ LANGUAGE plpgsql;
133
sqreept