Ich weiß, dass es eine sehr dumme Frage sein kann, aber ich bin neu in DynamoDB.Kann der Wert des Bereichsschlüssels in der DynamoDB-Tabelle geändert werden?
Mein Zweifel ist, ist es möglich, den Wert eines Bereichsschlüssel in DynamoDB zu aktualisieren.
Meine Tabelle Angenommen ist "TEST"
{
ID : PK/HK
Date : RK
Name : GSI
Add : LSI
}
I Date
Attribut ändern möchten.
Anfangswerte in der Tabelle war:
{
ID = "344"
Date = "5656"
Name = "ABC"
}
diesen Code unten ausgeführt wird. Ich bin in der Lage, das Name
Attribut zu ändern, das GSI ist.
Map<String,AttributeValue> item = new HashMap<String,AttributeValue>();
item.put("ID", new AttributeValue("344"));
item.put("Date", new AttributeValue("5656"));
Map<String,AttributeValueUpdate> item1 = new HashMap<String,AttributeValueUpdate>();
AttributeValueUpdate update = new AttributeValueUpdate().withValue(new AttributeValue("AMIT")).withAction("PUT");
item1.put("Name", update);
UpdateItemRequest updateItemreq = new UpdateItemRequest("Test",item,item1);
UpdateItemResult updateItemres = dynamoDBUSEast.updateItem(updateItemreq);
Aber wenn ich diese Zeile ändern
item1.put("Name", update);
mit
item1.put("Date", update);
Ich erhalte einige Fehler als
Exception in thread "main" com.amazonaws.AmazonServiceException: One or more parameter values were invalid: Cannot update attribute Date. This attribute is part of the key (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: HRRP24Q7C48AMD8ASAI992L6MBVV4KQNSO5AEMVJF66Q9ASUAAJG)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:820)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:439)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:245)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:2908)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.updateItem(AmazonDynamoDBClient.java:1256)
So ist es möglich, den Bereich Key zu ändern Wert?
Der eindeutige Schlüssel kann nicht geändert werden –