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

DynamoDB中GSI与LSI的排序键值是否支持更新及自增操作?

DynamoDB排序键修改相关问题解答

主表排序键的不可变性

主表的主键(分区键+排序键)一旦写入就完全不可修改,这是DynamoDB的核心规则,无法通过任何更新操作直接改变排序键的值,只能删除原条目后重新插入。

GSI排序键的可更新性

GSI(全局二级索引)的排序键是可以修改的:

  • 当你更新主表中作为GSI排序键的属性(比如counts)时,DynamoDB会自动同步更新GSI中的对应条目——先删除旧的GSI条目,再插入新的条目,这个过程由DynamoDB后台自动完成。
  • 对于counts这类数值型属性,你可以直接使用UpdateItem操作配合ADD动作实现自增更新,比如:
    UpdateItem(
      TableName='your-table',
      Key={'partitionKey': {'S': 'xxx'}},
      UpdateExpression='ADD counts :incr',
      ExpressionAttributeValues={':incr': {'N': '1'}}
    )
    
    这个操作会同时更新主表的counts值和GSI中对应的排序键值。

LSI排序键的不可变性

LSI(本地二级索引)的排序键和主表排序键一样不可修改:

  • LSI是和主表分区键绑定的,其排序键属于主表主键的一部分(主表主键为分区键+LSI排序键),所以一旦写入就无法修改,同样只能删除原条目后重新插入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:17:01