Amazon dynamodb 带有ReturnValues参数的DynamoDB UpdateItem在失败的ConditionExpression上不返回任何内容
使用aws/aws sdk PHP3.21.6。我一定是误解了当ConditionExpression遇到ConditionalCheckFailedException错误时ReturnValues是如何工作的 我希望的是,如果ConditionExpression失败,进而触发ConditionalCheckFailedException,我可以捕获此异常,然后通过ReturnValue从DD访问新属性 文件似乎暗示了这一点 但是,通过测试,ReturnValues仅在ConditionExpression为true时返回属性,而不是在它失败时返回属性Amazon dynamodb 带有ReturnValues参数的DynamoDB UpdateItem在失败的ConditionExpression上不返回任何内容,amazon-dynamodb,Amazon Dynamodb,使用aws/aws sdk PHP3.21.6。我一定是误解了当ConditionExpression遇到ConditionalCheckFailedException错误时ReturnValues是如何工作的 我希望的是,如果ConditionExpression失败,进而触发ConditionalCheckFailedException,我可以捕获此异常,然后通过ReturnValue从DD访问新属性 文件似乎暗示了这一点 但是,通过测试,ReturnValues仅在ConditionExp
$response = $client->updateItem([
'TableName' => 'MyTable',
'Key' => [
'customer_url' => [
'S' => 'someurl.com'
],
'customer_platform' => [
'S' => 'some_platform'
]
],
'ExpressionAttributeNames' => [
'#C' => 'createdAt'
],
'ExpressionAttributeValues' => [
':val1' => [
'S' => '2017-01-24T14:15:32'
],
':val2' => [
'S' => '2017-01-24T14:15:30'
]
],
'UpdateExpression' => 'set #C = :val1',
'ConditionExpression' => '#C = :val2', // :val2 originally was 2017-01-24T14:15:30, before attempting to update to 2017-01-24T14:15:32. If I change the field to 2017-01-24T14:15:31, before running this update it will throw the ConditionalCheckFailedException
'ReturnValues' => 'ALL_NEW'
]);
是,
ReturnValues
仅在updateItem
成功时填充。如果由于条件检查失败异常
或任何其他原因而失败,返回值
将为空
支持文件来自,重点是矿山:
如果要获取更新之前或之后显示的项目属性,请使用ReturnValue
如果我们想在更新失败时获取记录,该怎么办?