鉴于以下骨架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
。
答案 0 :(得分:9)
更新后,您可以使用手册中所述的GET DIAGNOSTICS
或FOUND
状态变量获取更新的行数:
http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-DIAGNOSTICS