【发布时间】:2018-08-09 19:12:36
【问题描述】:
我一直试图在 postgres 中将 sql count 函数作为 INTEGER 返回,但它总是返回以下错误 ERROR: current transaction is aborted, commands ignored until end of transaction block。我已经尝试了以下查询及其变体,但总是导致同样的失败。
我也看到了cannot use RETURN QUERY in a non-SETOF function。
CREATE OR REPLACE FUNCTION "GetUser"(
"@id" UUID
)
RETURNS INTEGER AS
$func$
BEGIN
RETURN (
SELECT COUNT("id")
FROM "users" as u
WHERE u."id" = "@id"
);
END;
$func$ LANGUAGE PLPGSQL;
【问题讨论】:
-
“错误:当前事务被中止,命令被忽略,直到事务块结束”如果在事务中发生错误,导致它被中止,当您尝试在执行 @987654324 之前执行其他命令时@。你的功能看起来不错。所以我怀疑
CREATE FUNCTION语句之前的某个地方有错误。
标签: sql postgresql function count