首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当其他表中不存在ID时,使用ConditionExpression限制插入

当其他表中不存在ID时,使用ConditionExpression限制插入
EN

Stack Overflow用户
提问于 2015-11-22 00:49:19
回答 2查看 92关注 0票数 1

很简单的事。当向表A插入数据时,我为列ex_id提供了一个HashKey id和附加哈希索引,这是表B中的外键。

当将新数据插入到表A时,每当在表B中插入没有对应条目的ex_id列中的值时,我希望创建一个异常。

我认为ConditionExpression是应该走的路,但不能让它发挥作用--可能遗漏了一些显而易见的东西。试着用contains()..。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-22 06:03:21

据我所知,这在DynamoDB端是不可能的,因为表之间没有任何关系。

您可以做的是在应用程序级别上有一个条件,它在插入表A中的值之前自行检查并抛出异常(如果找到该"Id“,则可以查询表B中的”Id“,然后插入”否则抛出异常“)

票数 0
EN

Stack Overflow用户

发布于 2015-11-22 13:52:27

DynamoDB本机不支持任何类型的外键支持,一切都是基于每个表、每个键基础上工作的。DynamoDB的方法是在客户端级别处理这种逻辑。例如,请参阅dynamodb事务客户端。此库允许您在所有成功或所有回滚的表之间执行事务。

对于您的情况,我将首先向表getItem B(使用一致读取)发出请求,如果存在,则将其写入表A

然后,我将启用表A上的流,并编写一个lambda函数来检查是否有任何数据冲突被写入表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33850415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档