请举例说明PostgreSQL中cidr和inet数据类型的差异

时间:2017-04-22 08:22:19

标签: postgresql

来自DOC

  

inet和cidr数据类型之间的本质区别在于inet接受网络掩码右侧非零位的值,而cidr则不接受。

请举例说明PostgreSQL中cidr和inet数据类型的差异。

我完全不明白,想要在视觉上看到差异。

1 个答案:

答案 0 :(得分:0)

似乎我找到了the answer

比如说,如果你有一个/ 8网络掩码,'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