DynamoDB删除操作报错:Where子句未包含所有键属性的强制相等条件
解决DynamoDB DELETE语句报错:Where clause does not contain a mandatory equality on all key attributes
问题原因
DynamoDB对DELETE操作有强制要求:WHERE子句必须包含所有主键属性的等值匹配条件。如果你的表是复合主键(分区键+排序键)结构,仅指定分区键(比如你的userId)是不够的,必须同时提供排序键的等值条件。
解决方案
确认表的主键结构
查看你的DynamoDB表的键架构,明确分区键和排序键的具体字段名(比如可能存在orderId、recordTime这类排序键)。修改DELETE语句
将所有主键字段添加到WHERE子句中,用=做等值匹配。示例如下:
假设表的排序键为orderId,修正后的语句:DELETE FROM "someTableNAme" WHERE "userId" = 'someid' AND "orderId" = 'your-order-id'
注意事项
- 所有主键属性必须使用等值条件(
=),不支持范围查询(如>、<) - 表名和字段名的引号、大小写要与表定义完全一致,避免匹配失败
内容的提问来源于stack exchange,提问作者Umer Farooq
相关产品推荐
相关产品推荐

