Amazon dynamodb 带有ReturnValues参数的DynamoDB UpdateItem在失败的ConditionExpression上不返回任何内容

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

使用aws/aws sdk PHP3.21.6。我一定是误解了当ConditionExpression遇到ConditionalCheckFailedException错误时ReturnValues是如何工作的

我希望的是,如果ConditionExpression失败,进而触发ConditionalCheckFailedException,我可以捕获此异常,然后通过ReturnValue从DD访问新属性

文件似乎暗示了这一点

但是,通过测试,ReturnValues仅在ConditionExpression为true时返回属性,而不是在它失败时返回属性

$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


如果我们想在更新失败时获取记录,该怎么办?