很简单的事。当向表A插入数据时,我为列ex_id提供了一个HashKey id和附加哈希索引,这是表B中的外键。
当将新数据插入到表A时,每当在表B中插入没有对应条目的ex_id列中的值时,我希望创建一个异常。
我认为ConditionExpression是应该走的路,但不能让它发挥作用--可能遗漏了一些显而易见的东西。试着用contains()..。
有什么想法吗?
发布于 2015-11-22 13:52:27
DynamoDB本机不支持任何类型的外键支持,一切都是基于每个表、每个键基础上工作的。DynamoDB的方法是在客户端级别处理这种逻辑。例如,请参阅dynamodb事务客户端。此库允许您在所有成功或所有回滚的表之间执行事务。
对于您的情况,我将首先向表getItem B(使用一致读取)发出请求,如果存在,则将其写入表A。
然后,我将启用表A上的流,并编写一个lambda函数来检查是否有任何数据冲突被写入表。
https://stackoverflow.com/questions/33850415
复制相似问题