【发布时间】:2020-10-28 23:01:54
【问题描述】:
我正在研究列类型和默认值,遇到了两列,都是smallint,但默认值不同:
- 有
0 - 有
(0)::smallint
当我将 2 更改为 1 的值时,两者都是相同的,似乎没有任何变化。当然,我用谷歌搜索找到了我的问题的答案,发现:: 用于类型转换。但我想知道,如果它是默认值,为什么需要类型转换?
【问题讨论】:
-
您不需要进行类型转换。在创建表时,有人在一个实例中进行了转换,但在另一个实例中没有。试试这个看看:
create table somesmallints (a smallint default 0, b smallint default 0::smallint, c smallint default (0)::smallint);然后做一个\d+ somesmallints。