我试图创建一个返回表的postgres函数,但是当我执行该函数时, return 语句应该关闭或结束整个函数,但是它一直忽略那个结尾,然后继续。
该函数非常简单:如果字段为空,则只需进行验证。我知道,如果我发表 ELSE 声明,该问题将得到解决,但是我不知道为什么它会忽略 RETURN ,并且不知道是否有任何问题 ELSE 以外的其他方法来解决该问题
kubectl get roles --all-namespaces -o jsonpath='{.items[*].apiVersion}'
这是回报:
0必填字段为空,请填写并 再试一次。空字段{'Firstname'}
0必填字段为空,请填写并 再试一次。空字段{名字}
答案 0 :(得分:1)
执行两个return query
语句是因为return query
不会退出该函数。如果要在if
块的末尾退出,可以添加一个return
语句(单独)。
按照doc:
返回查询实际上并不从函数中返回-它们只是 将零或更多行追加到函数的结果集中。然后执行 继续执行PL / pgSQL函数中的下一条语句。如 如果连续执行RETURN NEXT或RETURN QUERY命令,则 结果集已建立。最终的RETURN,不应包含任何参数, 使控件退出功能(或者您可以让控件到达 函数的结尾)。