首页 > 解决方案 > 带有默认值的 Postgresql 返回表

问题描述

我想创建一个返回表的函数,但我想为这些值添加默认值,如下所示:

CREATE OR REPLACE FUNCTION cleanDatabase()
RETURNS TABLE 
(
error TEXT,
createConnection TEXT,
dropDatabases TEXT DEFAULT 'OK',
dropTableSpaces TEXT,
closeConnection TEXT
)
AS $$
...

但我收到以下错误:错误:“默认”或附近的语法错误

我在创建新表时经常使用 default 关键字,它工作正常。这不是我在这里做的一个用例,我应该只创建一个具有默认值的临时表并返回该表吗?

标签: postgresqlplpgsql

解决方案


为返回类型的列设置默认值是没有意义的,因为您要返回每一列。

表的默认值仅在插入行而不为具有默认值的列提供值(与指定空值不同)时才会生效。PL/SQL 中没有办法不返回所有值。

coalesce()当无法从您的 SP 逻辑中确定一个值时,使用或类似方法提供一个值。


推荐阅读