Amazon dynamodb 使用ConditionExpression在ID不';不存在于其他表中

Amazon dynamodb 使用ConditionExpression在ID不';不存在于其他表中,amazon-dynamodb,Amazon Dynamodb,简单的事情。在将数据插入表A时,我有一个HashKey id和列ex\u id的附加hash索引,这是表B中的外键 在表a中插入新数据时,每当插入数据时,如果列ex_id中的值在表B中没有相应的条目,我想创建一个异常 我认为ConditionExpression是一种方法,但无法使其工作-可能遗漏了一些明显的东西。试图使用contains() 有什么想法吗?据我所知,这在DynamoDB端是不可能的,因为表之间没有关系 您可以做的是,您可以在应用程序级别设置一个条件,该条件在表a中插入值之前自行

简单的事情。在将数据插入表A时,我有一个HashKey id和列ex\u id的附加hash索引,这是表B中的外键

在表a中插入新数据时,每当插入数据时,如果列ex_id中的值在表B中没有相应的条目,我想创建一个异常

我认为
ConditionExpression
是一种方法,但无法使其工作-可能遗漏了一些明显的东西。试图使用
contains()


有什么想法吗?

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


您可以做的是,您可以在应用程序级别设置一个条件,该条件在表a中插入值之前自行检查并引发异常。(如果找到,您可以查询表B中的“Id”,然后插入else引发异常)

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


您可以做的是,您可以在应用程序级别设置一个条件,该条件在表a中插入值之前自行进行检查并引发异常。(如果找到,您可以查询表B中的“Id”,然后插入else引发异常)

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

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


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

DynamoDB本机不支持任何类型的外键支持,所有操作都基于每个表,每个键。DynamoDB的方法是在客户机级别处理这种逻辑。例如,请参见。此库允许您跨所有成功或全部回滚的表执行事务

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


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

这就是我所做的。但它听起来很合乎逻辑,因为它是一个简单的通过散列得到的。如果它在DynamoDB级别上不受支持,这有点令人失望……是的,据我所知,目前还没有支持。这就是我所做的。但它听起来很合乎逻辑,因为它是一个简单的通过散列得到的。如果它在DynamoDB级别上不受支持,那就有点令人失望了……是的,据我所知,目前还没有支持。