Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
POSTGRESQL:错误:没有与冲突规范匹配的唯一约束或排除约束_Postgresql_Upsert - Fatal编程技术网

POSTGRESQL:错误:没有与冲突规范匹配的唯一约束或排除约束

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

我试图使用下面的查询对名为“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_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
在这里不是一个约束。这是一个导致。。。。约束。?