首页 > 解决方案 > Postgresql:错误:“DO”处或附近的语法错误

问题描述

我正在使用以下查询对 posstgres db 执行 upsert 操作。但我收到错误“在或附近出现语法错误”。我想这与行ON CONFLICT ((message_payload-->'jsonContent'->>'message_id')) 有关。我正在尝试根据 json 参数密钥 messageId 检查身份。有人可以通过提及我所拥有的缺失信息来帮助我。

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"
    }
}', ‘abcd.1’, '{
    "jsonContent": {
        "messageTime": 16772223422,
        "messageRev": 9,
        "businessId": "DB",
        "messageId": "55",
        "deviceId": "DB_1234_SMM",
        "assetType": "Locomotive",
        "messageType": "thirdparty-timeseries",
        "assetId": "DB_1234",
        "appId": "ThirdPartyApp",
    }
}', 1, 201)
ON CONFLICT ((message_payload-->'jsonContent'->>'message_id'))
    DO UPDATE SET attempt=attempt+1

标签: postgresql

解决方案


推荐阅读