我正在编写一个在Postgres中的存储过程,需要检查一行是否存在,然后相应地执行操作。类似以下内容。
IF SELECT * FROM foo WHERE x = 'abc' AND y = 'xyz' THEN
-- do something here
ELSE
-- do something else
END;
我已经谷歌了一下,但没有找到什么好的结果。
我正在编写一个在Postgres中的存储过程,需要检查一行是否存在,然后相应地执行操作。类似以下内容。
IF SELECT * FROM foo WHERE x = 'abc' AND y = 'xyz' THEN
-- do something here
ELSE
-- do something else
END;
我已经谷歌了一下,但没有找到什么好的结果。
PERFORM * FROM foo WHERE x = 'abc' AND y = 'xyz';
IF FOUND THEN
....
END IF;
GET DIAGNOSTICS
获取行数, 或使用 SELECT INTO
把行数的 count(...)
存储到一个 DECLARE
d 变量中进行测试。如果没有得到结果是错误的,使用 SELECT INTO STRICT
要求必须获得并存储一个目标变量中的 确切的一行。