前面的小节中给出的规则将会导致对SQL查询中的所有表达式分配非unknown
数据类型,不过作为SELECT
命令的简单输出列出现的未指定类型的文本除外。例如,在
SELECT 'Hello World';
中没有标识该字符串应该取何种类型。在这种情况下,PostgreSQL将会退而求其次将其类型决定为text
。
当SELECT
处于UNION
(或者INTERSECT
,或者EXCEPT
)结构的一边或者出现在INSERT ... SELECT
中时,这条规则就不适用了,因为在前面小节中给出的规则会优先。在第一种情况下未指定类型文本的类型将从 UNION
的另一边取得,而在第二种情况下未指定类型文本的类型将从目标列取得。
出于这样的目的,RETURNING
列表采用和SELECT
输出列表同样的方式对待。
在PostgreSQL 10之前,这条规则还不存在,SELECT
输出列表中未指定类型的文本的类型会被留成unknown
。这样做会导致各种不好的后果,因此新版本中做出了改变。
备案信息: 粤ICP备15087711号-2
Copyright © 2008-2024 啊嘎哇在线工具箱 All Rights.
本站所有资料来源于网络,版权归原作者所有,仅作学习交流使用,如不慎侵犯了您的权利,请联系我们。