簡單的事情。雖然插入數據表一個我有一個HashKey ID和額外的哈希索引列ex_id,這是一種在表乙外鍵。使用ConditionExpression來限制在其他表中不存在ID時插入
插入新的數據到表一個我想只要將數據插入與列值創建例外ex_id不具有表乙通訊員項。
我認爲ConditionExpression
是要走的路,但不能使它工作 - 可能會丟失一些明顯的東西。試圖使用 ...
任何想法?
簡單的事情。雖然插入數據表一個我有一個HashKey ID和額外的哈希索引列ex_id,這是一種在表乙外鍵。使用ConditionExpression來限制在其他表中不存在ID時插入
插入新的數據到表一個我想只要將數據插入與列值創建例外ex_id不具有表乙通訊員項。
我認爲ConditionExpression
是要走的路,但不能使它工作 - 可能會丟失一些明顯的東西。試圖使用 ...
任何想法?
據我所知,這在DynamoDB結束時是不可能的,因爲表之間沒有關係。
你可以做的是,你可以在應用程序級別有一個條件,在它自己進行檢查並拋出一個異常,然後在表A中插入值。(如果找到了,你可以查詢表B的那個「Id」然後插入其他的拋出異常)
DynamoDB本身不支持任何類型的外鍵支持,一切工作在每個表的基礎上,每個鍵的基礎上。 DynamoDB的方法是在客戶端處理這種邏輯。例如,請參閱dynamodb transactions client。這個庫允許你跨所有成功或全部回滾的表執行事務。
對於你的情況,我會首先作出的getItem請求表乙(使用一致讀),如果它存在,那麼寫表一個。
然後,我將啓用表A上的流並編寫一個lambda函數來檢查是否有任何數據違規被寫入表中。
這就是我所做的。但它聽起來很合乎邏輯,因爲它是一個簡單的哈希函數。如果它在DynamoDB級別上不受支持,這有點讓人失望... –
是的,目前沒有支持,據我所知。 –