用于IPv4地址的PostgreSQL字段数据类型

Ale*_*ley 9 sql postgresql ip

PostgreSQL中IPv4地址的正确数据类型是什么?

我听说过inet,但从未使用过它.

我需要执行SELECT类似的查询SELECT ... WHERE ip = '99.88.99.88',它应该支持人类可读格式的输出(通过人类可读,我的意思是'99 .88.99.88').

能够SELECT通过子网获得IP地址是很好的.

感谢您的任何建议!

Cra*_*ger 16

内置cidrinet类型将满足您的需求并提供合适的运算符:

regress=> SELECT '192.168.1.19'::inet << '192.168.1.0/24'::cidr;
 ?column? 
----------
 t
(1 row)
Run Code Online (Sandbox Code Playgroud)

参见PostgreSQL文档的网络数据类型,运算符和函数以及对网络数据类型.

cidrinet类型提供有限的索引支持; 特别是,"范围内地址"类型查询至少在地址为常量的情况下变为范围查询.看到这个(相当古老的)线程.

另见Chris的观点ip4r.