DEC
类型似乎在 PostgreSQL 15 中工作得很好:
SELECT 12 :: DEC(5,3);
生产:
numeric
---------
12.000
(1 row)
显然
DEC
是 NUMERIC
类型的别名,就像 DECIMAL
一样。但是,当我查看 PostgreSQL 手册中的数据类型表时,它不包含 DEC
类型。只有NUMERIC
和DECIMAL
。
表格上方注明:
表 8.1 显示了所有内置的通用数据类型。 “别名”列中列出的大多数备用名称都是 PostgreSQL 由于历史原因在内部使用的名称。此外,还有一些内部使用或已弃用的类型可用,但此处未列出。
这让我想知道
DEC
类型是否可能被弃用。我尝试在 PostgreSQL 中搜索已弃用的类型,但没有找到此类信息。
这只是文档中的遗漏吗?如果是这样,是否可能有更多受支持但未记录的数据类型别名?
或者
DEC
类型还有更多的事情发生吗?
dec
是 decimal
的缩写。两者都是 numeric
的别名。
test=> SELECT 'dec'::regtype, 'decimal'::regtype, 'numeric'::regtype;
regtype | regtype | regtype
---------+---------+---------
numeric | numeric | numeric
(1 row)
类型
和decimal
是等效的。这两种类型都是 SQL 标准的一部分。numeric
我并没有过多地宣称这两者都不会被弃用。不过,只需使用规范类型名称
numeric
即可。没有充分的理由不这样做。