我需要执行以下操作:
insert into table_a (primarykey_field, other_field)
select primarykey_field, other_field from table_b b
on conflict (primarykey_field) where primarykey_field >>= b.primarykey_field do nothing;
字符串
不管我的where条件的操作,它可以是任何东西,除了一个简单的相等。在我的情况下,我使用一个自定义的ip范围字段,所以我想检查一个ip地址不在其他ip地址的范围内,当我插入一个新的行。
有没有一种方法可以用on conflict
或另一个查询来做到这一点?
1条答案
按热度按时间cnjp1d6j1#
您可以过滤掉所有具有
pkey_ip_range
的行,这些行已经包含在现有的pkey_ip_range
中:字符串
如果你想检查传入的ip范围是否包含现有的ip范围(
&&
rather than>>=
),你可以使用排除约束:| pkey_ip_range|其他栏|
| --|--|
| 192.168.0.0/31 | ABC|