当没有找到记录时,是否可以让存储过程的行为与常规选择查询完全相同,或者这是驱动程序问题。
例如,对于 go,不返回任何行的查询将返回 sql.ErrNoRows 错误。但是,这不会:
create table emptytable(id int);
create function selectany() returns emptytable as $$
DECLARE
_out emptytable;
BEGIN
SELECT * INTO emptytable FROM emptytable limit 1;
RETURN _out;
END;
$$ LANGUAGE PLPGSQL;
我尝试过 SELECT INTO STRICT,虽然这会引发“查询没有返回行”错误,但它与非存储过程查询不同。也没有提高 NO_DATA_FOUND。
慕尼黑的夜晚无繁华
白衣染霜花
相关分类