在与 UpdateItem 相同的项目中的 DynamoDB TransactWriteItems ConditionCheck

In DynamoDB TransactWriteItems ConditionCheck in same item as UpdateItem

在规划系统中,成千上万的用户同时竞争存储在 DynamoDB 中的相同时间段。 当用户尝试保留时间段时,TransactWriteItems 应该:

但是,https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html#transaction-isolation 说“您不能在同一事务中对同一项目执行 ConditionCheck 和 Update 操作。”

我如何才能确保用户只能保留其他人没有(不久前)保留的时间段?

您不需要交易。你可以只把项目放在保留时间段,并包括一个条件表达式,如果它已经被占用,它就会失败。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ConditionExpressions.html