Я создал таблицу TEST, которая имеет 4 столбца:
column1: ключ диапазона
column2: ключ сортировки
column3: GSI
column4 : обычный атрибут
Теперь я хочу обновить значение column4 на основе значения GSI. Я попытался использовать следующий код, но он работает только тогда, когда я передаю и диапазон, и ключ сортировки В моем случае использования во время обновления у меня было бы только значение GSI, а не ключ диапазона / сортировки.
Map<String, AttributeValue> key = new HashMap<>();
key.put(“column1”, new AttributeValue().withS(column1Value));
key.put(“column2”, new AttributeValue().withS(column2Value));
Map<String, AttributeValue> attributeValues = new HashMap<>();
attributeValues.put(“column4”, new AttributeValue().withS(column4Value));
attributeValues.put(“column3”, new AttributeValue().withS(column3Value));
UpdateItemRequest updateItemRequest = new UpdateItemRequest()
.withTableName(emailsTableName)
.withKey(key)
.withUpdateExpression(“set column4 = :column4”)
.withConditionExpression(“column3 = :column3”)
.withExpressionAttributeValues(attributeValues);
UpdateItemResult updateItemResult = dynamoDBClient.updateItem(updateItemRequest);
Возможно ли обновить столбец Dynamo DB только на основе GSI?