Sql Postgres普通查询中的逻辑

Sql Postgres普通查询中的逻辑,sql,postgresql,Sql,Postgresql,我需要在Postgres中进行查询,如果现有数据包含无效数据,则插入新项。我想做这样的事情 如果不存在,请从表中选择*,其中field='value,然后 插入到。。。 如果结束; 我可以在没有函数的情况下执行此操作吗 UPD 这是桌子 如果不存在,则创建表test\u md 序列号不为空, 分区文本不为空, 版本int不为空, 数据jsonb不为空, 主键分区,版本 ; 这里有一些数据 插入测试分区、版本、数据 价值观 第一部分,1,{k1:v1,k2:v2} '第一部分',2,'{k1:v1

我需要在Postgres中进行查询,如果现有数据包含无效数据,则插入新项。我想做这样的事情

如果不存在,请从表中选择*,其中field='value,然后 插入到。。。 如果结束; 我可以在没有函数的情况下执行此操作吗

UPD 这是桌子

如果不存在,则创建表test\u md 序列号不为空, 分区文本不为空, 版本int不为空, 数据jsonb不为空, 主键分区,版本 ; 这里有一些数据

插入测试分区、版本、数据 价值观 第一部分,1,{k1:v1,k2:v2} '第一部分',2,'{k1:v1,k2:v2}' 第二部分,4,{k1:v1,k2:v2} '第二部分',5,'{k1:v1,k2:v2}' ; 例如,我想插入数据集

{ “分区”:“第一部分”, “数据”:“{k1:v1,k2:v2}” }
如果分区和数据与v2记录相同,则不应执行任何操作。在任何其他情况下,我都应该添加一个版本为max+1的新记录。

插入。。。关于冲突字段,请提供示例数据、所需结果,并说明如果现有数据中存在无效数据,您可以使用哪些方法。没有if,只有where:So:insert-into。。。如果不存在,则从表中选择*,其中field='value;顺便说一句:您的代码片段中也没有函数。