postgresql - 带有默认值的 Postgresql 返回表
问题描述
我想创建一个返回表的函数,但我想为这些值添加默认值,如下所示:
CREATE OR REPLACE FUNCTION cleanDatabase()
RETURNS TABLE
(
error TEXT,
createConnection TEXT,
dropDatabases TEXT DEFAULT 'OK',
dropTableSpaces TEXT,
closeConnection TEXT
)
AS $$
...
但我收到以下错误:错误:“默认”或附近的语法错误
我在创建新表时经常使用 default 关键字,它工作正常。这不是我在这里做的一个用例,我应该只创建一个具有默认值的临时表并返回该表吗?
解决方案
为返回类型的列设置默认值是没有意义的,因为您要返回每一列。
表的默认值仅在插入行而不为具有默认值的列提供值(与指定空值不同)时才会生效。PL/SQL 中没有办法不返回所有值。
coalesce()
当无法从您的 SP 逻辑中确定一个值时,使用或类似方法提供一个值。
推荐阅读
- c# - .Net 4.7 向后兼容性
- javascript - 带有 getUIKIT uk-accordion 的 tinyMCE 5(隐藏/显示 div)
- python - 可复位定时器对象实现python
- swift - 我如何将我的 JSON API 请求实现到 UITableViewCell 中?
- java - 字节缓冲区输出 Android Java
- javascript - 使用 Telerik AsyncUpload 在 Javascript 中压缩图像
- docker - elasticsearch-1.6 连接到其 docker 容器时无法初始化类 org.elasticsearch.monitor.jvm.JvmInfo
- c# - 在 linq 中使用 Aggregate() 生成字符串时出现意外结果
- regex - 基于 s3 文件创建 s3 对象
- java - 通过 JDBC 将数据插入临时表时对象名称无效