मुझे पता है कि यह एक बहुत ही मूर्ख सवाल हो सकता है, लेकिन मैं डायनेमो डीबी के लिए नया हूं।क्या डायनेमो डीबी टेबल में रेंज कुंजी का मूल्य बदलना संभव है?
मेरा संदेह यह है कि डायनेमो डीबी में रेंज कुंजी के मान को अपडेट करना संभव है।
मान लीजिए मेरे तालिका "टेस्ट"
{
ID : PK/HK
Date : RK
Name : GSI
Add : LSI
}
मैं Date
गुण को संशोधित करना चाहते है। तालिका में
प्रारंभिक मान था:
{
ID = "344"
Date = "5656"
Name = "ABC"
}
नीचे इस कोड चल रहा है। मैं Name
विशेषता जो जीएसआई है उसे बदलने में सक्षम हूं।
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);
लेकिन जब मैं के रूप में
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)
item1.put("Date", update);
मैं कुछ त्रुटि हो रही है के साथ इस लाइन
item1.put("Name", update);
बदल तो क्या यह संभव है रेंज कुंजी बदलने के लिए मूल्य?
इसकी अनूठी कुंजी की तरह बदला नहीं जा सकता –