请给我一个示例,说明PostgreSQL中CIDR和INET数据类型的差异



来自doc

INET和CIDR数据类型之间的本质区别在于,INET接受NetMask右侧的非零位的值,而CIDR则不接受。

请给我示例,说明postgresql中的CIDR和INET数据类型的差异。

我不完全理解这一点,想在视觉上看到差异。

似乎我找到了答案

说,如果您有A/8 NetMask,则cidr类型需要所有24个最右边的位为零。inet没有此要求。

db=# select '255.0.0.0/8'::cidr;
255.0.0.0/8
db=# select '255.1.0.0/8'::cidr;
ERROR:  invalid cidr value: "255.1.0.0/8"
DETAIL:  Value has bits set to right of mask.

和INET允许这样做:

db=# select '255.1.0.0/8'::inet;
255.1.0.0/8

最新更新