PostgreSQL GOTO bak功能

时间:2014-10-17 12:10:59

标签: sql postgresql

我的功能如

CREATE OR REPLACE FUNCTION task_manager(task integer, params text)
   RETURNS integer AS $$
BEGIN
IF task = 1 THEN
  <<lab1>>
  -- some work 1
ELSIF task = 2 THEN
  -- some work 2

  -- need to exec 'some work 1'
  GOTO lab1;
END IF;

RETURN null;
END;
$$ LANGUAGE plpgsql;

由于GOTO语法,GOTO无法正常工作。

有什么办法吗?

1 个答案:

答案 0 :(得分:0)

如果我理解你正确,你总是需要做&#34; work1&#34;,如果task = 2,那么先做work2。

所以你每次都可以做工作..

[编辑]根据您的评论;尝试使用多个IF语句

CREATE OR REPLACE FUNCTION task_manager(task integer, params text)
   RETURNS integer AS $$
BEGIN
IF task = 1 OR task = 2 THEN

  -- some work 1


END IF;

  IF task = 2 THEN

  -- some work 2


END IF;

RETURN null;
END;
$$ LANGUAGE plpgsql;