INSERT语句右值引用基础值

在兼容B模式下,INSERT语句支持右值引用,当被引用列有NOT NULL约束且没有默认值时,将使用其基础值参与计算。若无基础值则继续使用NULL值参与计算(数组类型、用户自定义类型等)。 支持的各类型的基础值如表1所示。

表 1 类型基础值

类型基础值备注
int0
tinyint0
smallint0
integer0
binary_integer0
bigint0
booleanf
numeric0
decimal0
dec0
double precision0
float80
float0
char(n)“”注意:当字符串参与运算时,会根据内置规则进行值类型转换,
而定长的字符串存储后的值长度与指定长度一致,会填充空白字符(不同存储方式可能会不同)
varchar(n)“”
varchar2(n)“”
nchar(n)“”注意:当字符串参与运算时,会根据内置规则进行值类型转换,
而定长的字符串存储后的值长度与指定长度一致,会填充空白字符(不同存储方式可能会不同)
nvarchar2(n)“”
nvarchar(n)“”
date01-01-1970
time00:00:00
timestamp当前时间戳
smalldatetimeThu Jan 01 00:00:00 1970
interval year@ 0
interval month@ 0
interval day@ 0
interval hour@ 0
interval minute@ 0
interval second@ 0
interval day to second@ 0
interval day to hour@ 0
interval day to minute@ 0
interval hour to minute@ 0
interval hour to second@ 0
interval minute to second@ 0
reltime@ 0
abstimeWed Dec 31 16:00:00 1969 PST
money$0.00
int4rangeempty
blob数据内容为空的对象
raw数据内容为空的对象
bytea\x
point(0,0)
lseg[(0,0),(0,0)]
box(0,0),(0,0)
path((0,0))
polygon((0,0))
circle<(0,0),0>
cidr0.0.0.0/32
inet0.0.0.0
macaddr00:00:00:00:00:00
BIT数据内容为空的对象
BIT VARYING数据内容为空的对象
UUID00000000-0000-0000-0000-000000000000
jsonnull数据内容为null
jsonbnull数据内容为null
int8rangeempty
numrangeempty
tsrangeempty
tstzrangeempty
daterangeempty
hll\x
SET“”
tsvector数据内容为空的对象
tsquery数据内容为空的对象
HASH160000000000000000
HASH3200000000000000000000000000000000
enum第一项