You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React环境下更新DynamoDB表出现主键不匹配错误求助

问题原因分析

你遇到的ValidationException错误,核心是传入的分区键id类型与DynamoDB表定义的类型不匹配。

从调用代码updateData("mytable","2","2023-01-10")能看到,你传递的id是字符串类型的"2",但你的DynamoDB表中id分区键的类型应该是数字(Number)。DynamoDB是强类型数据库,键的类型必须严格匹配表结构定义,因此触发了验证错误。

解决方案

方案一:修正调用时的id类型

把调用中的字符串"2"改为数字2,确保类型和表定义一致:

updateData("mytable", 2, "2023-01-10")

方案二(不推荐,除非业务必须):修改表的分区键类型

如果业务确实需要用字符串类型的id,可以修改DynamoDB表的分区键类型为String,但注意这种操作需要重新建表(DynamoDB不支持直接修改现有键的类型),且要同步调整已有数据的类型,避免后续出现其他问题。

额外建议

为了避免类似类型问题,建议给函数参数明确类型,不要用any:

export const updateData = (tableName: string, id: number, date: string) => {
    // ... 现有代码
}

内容的提问来源于stack exchange,提问作者Ranjan Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:01:00