2个独特属性的新值我读这: Is there a way to enforce unique constraint on a property (field) other than the primary key in dynamodb插入与dynamodb
不知道这完全回答我的使用情况。
我在dynamodb中有3个属性。
| A | B | C |
所有A和B两个属性在整个表中都是唯一的。我的意思是可以有2项
A = 1, B = 2 ; A = 2, B = 1
,但不能有2项
A = 1, B = 1; A = 2, B = 1
OR
A = 1, B = 1; A = 1, B = 2
我怎样才能在dynamodb插入一个新的值(不包括非规范化那个表),这样我不打破那个数据库约束?我觉得条件表达式工作过的主键http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html 和事务管理器 https://java.awsblog.com/post/Tx13H2W58QMAOA7/Performing-Conditional-Writes-Using-the-Amazon-DynamoDB-Transaction-Library ,因为我觉得它可以检测并不能与其他独特属性的改变与相同的主键属性检索记录
其实,我想要做的是只存储唯一值,否则失败。据我了解,我们可以存储唯一的As,但是我们无法强制所有的Bs都是唯一的,即使是“预期”的地图也是如此。纠正我,如果我错了。 –
你说得对,这可能不是你最好的解决方案。我想到的唯一解决方案是使用单独的表格作为唯一参数,并在插入新值时使用条件放置,但在处理大量值时可能非常不方便。正如我在回答中所述,DynamoDB不支持唯一性约束...... – Smajl
即使使用单独的表格,如果应用程序是多线程的或分布式的,则在处理竞态条件时也会遇到问题。 –