database - DynamoDB批量写入,不同的哈希键,相同的范围键。但提供的项目键列表包含重复项

标签 database go amazon-dynamodb nosql

我得到了这样的表键架构:

        KeySchema: []*dynamodb.KeySchemaElement{{
                AttributeName: aws.String("address"),
                KeyType:       aws.String(dynamodb.KeyTypeHash),
            }, {
                AttributeName: aws.String("tx_id"),
                KeyType:       aws.String(dynamodb.KeyTypeRange),
            }},

这样写记录:

    for _, storeKey := range t.StoreKeys() {
        mainItem["address"], err = dynamodbattribute.Marshal(storeKey)
        if err != nil {
            return err
        }
        mainTxPut := dynamodb.PutRequest{
            Item: mainItem,
        }

        writeRequests = append(writeRequests, &dynamodb.WriteRequest{
            PutRequest: &mainTxPut,
        })
    }

但是当使用不同的地址值、相同的 tx_id 时,我得到了错误: ValidationException:提供的项目键列表包含重复项

因为 hashkey 不同,我应该使用不同的 key 。那么为什么 dynamodb 告诉我我的 key 重复了?

最佳答案

我强烈建议您添加一些日志记录,以确保批处理中没有重复项。当您遇到异常时,只需记录该批处理以进行检查。

项目必须具有相同的主键才能重复。

关于database - DynamoDB批量写入,不同的哈希键,相同的范围键。但提供的项目键列表包含重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75690884/

相关文章:

php - Mysql query for ( full text)searching with multiple order by conditions

database - 共享文件夹 : fatal error C1033: cannot open program database 上的 Visual Studio 2010 项目

amazon-web-services - 如何通过 AWS SAM 模板创建具有自动缩放吞吐量的 DynamoDB 表

node.js - AWS Lambda查询二级索引

java - 请告知异常(exception)情况

php/mysql搜索功能问题

json - 为什么 golang json number 不能像 "10"那样转换 int 或 string int?

unit-testing - 在golang中模拟外部结构依赖

autocomplete - Golang自动补全nsf包

java - Dynamodb : UpdateItemSpec : Multiple Update Expression - Not Working