답변:
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
...
그러나 여전히 함수를 수행하려면 returns 뒤에 void 를 추가하십시오 .
#variable_conflict
지침이 나머지 답변과 관련 이 없음 을 유의하십시오 . 예제 함수의 일부일뿐입니다. 유일한 중요한 부분은RETURNS void
. 또한 멋지다. PL / PgSQL에 pragma가 있다는 것을 몰랐습니다.