我正在使用PostgreSQL并拥有如下表:
表名:ip4_bank
第1栏:ip4_address
第2栏:nic_id
默认情况下,此表将包含IPv4地址列表,其中字段2设置为null。
我想要做的是运行查询以将nic_id
分配给下一个可用的IP4地址。
我到目前为止的查询是:
INSERT INTO ip4_bank (nic_id) VALUES ('1') WHERE nic_id = null
但这会填满nic_id
'1'
nic_id
的表格,其中所有内容都先前已设为空。
任何人对如何将{{1}}值只插入一行有什么想法?
答案 0 :(得分:3)
假设“下次可用”是最低IP,请尝试:
UPDATE ip4_bank SET nic_id = 1
WHERE nic_id is null
AND ip4_address = (SELECT MIN(ip4_address)
FROM ip4_bank
WHERE nic_id is null)