3
函數是否可以返回一條記錄,但如果存在空結果集,則返回零記錄。例如:從函數返回0或1行
如果我不包含數據的空表...
CREATE TABLE Foo
(
FooID SERIAL CONSTRAINT PK_Foo PRIMARY KEY,
FooValue INTEGER NOT NULL
);
...和...功能
CREATE OR REPLACE FUNCTION GET_OneFoo()
RETURNS Foo
AS $$
SELECT
FooID,
FooValue
FROM
Foo
LIMIT 1
$$ LANGUAGE SQL;
...然後...
SELECT GET_OneFoo()
...結果...
Total query runtime: 11 ms.
1 row retrieved.
... ...但是
SELECT
FooID,
FooValue
FROM
Foo
LIMIT 1
...結果...
Total query runtime: 10 ms.
0 rows retrieved.
謝謝您的回答。我認爲這可能是這種情況。這對性能有任何影響嗎? – Cakez0r
@CakezOr沒有影響。 –
它確實會影響可以稍微調用該函數的上下文,並且它會在「SELECT」列表中調用函數時更改語義 - 返回零行與返回NULL行不同。不過,它不應該對性能產生重大影響。 –