回答:
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;
#variable_conflict
:dba.stackexchange.com/a/105828/3684は
SELECT * FROM stamp_user(...)
で試してみると、私はそれを取得error: query has no destination for result data
し、私が書くだけでstamp_user(...)
私は得syntax error
ます。
関数は常に何かを返す必要がありますが、次のようなプロシージャを使用できます
do $$
のような通常の機能から始めます
declare
...
しかし、あなたはまだだけ追加機能を実行したい場合は、ボイドの後に戻ります。
#variable_conflict
指令は残りの回答とは関係がないことに注意してください。これはサンプル関数の一部にすぎません。唯一の重要なビットはRETURNS void
です。また、クールなことに、PL / PgSQLにプラグマがあることを知りませんでした。