pl / pgsql如果更新成功,则返回true

时间:2012-02-04 18:48:34

标签: postgresql plpgsql

鉴于以下骨架pl / pgsql函数,如果更新成功(某些内容实际更新),如何返回true,否则返回false?

CREATE FUNCTION UpdateThingy(
    /* input parameters */
) RETURNS BOOLEAN AS $$
BEGIN
    UPDATE thingies SET /* blah blah */ WHERE /* blah blah */;
    RETURN true;
END;
$$ LANGUAGE plpgsql;

目前,即使没有更新的行,也会始终返回true。我希望在没有行受更新影响的情况下返回false

1 个答案:

答案 0 :(得分:9)

更新后,您可以使用手册中所述的GET DIAGNOSTICSFOUND状态变量获取更新的行数:

http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS