POSTGRESQL:错误:没有与冲突规范匹配的唯一约束或排除约束
我试图使用下面的查询对名为“message_payload”的表执行upsert操作,但出现错误: 错误:不存在与冲突规范匹配的唯一约束或排除约束 SQL状态:42P10 查询:POSTGRESQL:错误:没有与冲突规范匹配的唯一约束或排除约束,postgresql,upsert,Postgresql,Upsert,我试图使用下面的查询对名为“message_payload”的表执行upsert操作,但出现错误: 错误:不存在与冲突规范匹配的唯一约束或排除约束 SQL状态:42P10 查询: INSERT INTO public.error_message( id, created_by, created_dt, modified_by, modified_dt, attempt, message_headers, message_main_topic, message_paylo
INSERT INTO public.error_message(
id, created_by, created_dt, modified_by, modified_dt, attempt, message_headers,
message_main_topic, message_payload, message_status, message_status_code)
VALUES (51, null, null, null, null, 1, '{
"jsonContent": {
"content-length": "1635",
"message_status_code": "417",
"cookie": "JSESSIONID=279AF4C174E6192BDAB11A067768BBD5",
"postman-token": "f0f33e86-498f-452a-aaf6-18eb84dc5907",
"kafka_timestampType": "CREATE_TIME",
"message_id": "21",
"kafka_receivedMessageKey": "null",
"kafka_receivedTopic": "error-topic",
"accept": "*/*",
"kafka_offset": "33",
"kafka_consumer": "org.apache.kafka.clients.consumer.KafkaConsumer@5091bb5f",
"host": "localhost:8082",
"content-type": "application/json",
"connection": "keep-alive",
"cache-control": "no-cache",
"kafka_receivedPartitionId": "0",
"kafka_receivedTimestamp": "1552305428711",
"accept-encoding": "gzip, deflate",
"message_main_topic": "ldarsQCustomStatistics.1",
"user-agent": "PostmanRuntime/7.6.1"
}
}', 'ldarsQCustomStatistics.1', '{
"jsonContent": {
"messageTime": 16772223422,
"messageRev": 9,
"businessId": "DB",
"messageId": "55"
}
}', 1, 201)
ON CONFLICT ((message_payload->'jsonContent'->>'message_id'))
DO UPDATE SET attempt = error_message.attempt + 1, message_headers = EXCLUDED.message_headers,
message_status_code = EXCLUDED.message_status_code, message_status = EXCLUDED.message_status,
created_by = EXCLUDED.created_by, created_dt = EXCLUDED.created_dt,
modified_by = EXCLUDED.modified_by, modified_dt = EXCLUDED.modified_dt,
message_main_topic = EXCLUDED.message_main_topic, message_payload = EXCLUDED.message_payload,
id = DEFAULT
您很可能缺少此特定字段上的唯一约束 例如:
CREATE UNIQUE INDEX j_msgid_idx ON public.error_message((data->'jsonContent'->>'message_id'));
你能把
public.error\u message
的表格规格贴出来吗。然后还需要显示约束
选项卡^^请向我们展示create table
语句,其中包括所有索引和约束,作为格式化文本,而不是显示某些列名的屏幕截图。该表是使用spring数据jpa和hibernate实体创建的。因此,我没有创建任何额外的索引。有人可能会感到困惑,因此,虽然这个答案是正确的,但“唯一约束”一词的使用让我陷入了困境,我发现你也可以这样做:关于约束constriant\u name上的冲突…
,但是j_msgid\u idx
在这里不是一个约束。这是一个导致。。。。约束。?