如果会话存在,则更新数据。
但是当会话不存在时,它会创建一个新行。在这个阶段,我不想做任何动作。
$sessionId = $params['session_id'];
$response = $this->dbo->updateItem([
'TableName' => $this->tableName,
'Key' => [
'id' => [ 'S' => $sessionId]
],
'ExpressionAttributeValues' => [
':val1' => ['S' => date('Y-m-d H:i:s')]
],
'UpdateExpression' => 'set sessionEnd = :val1',
'attributeExists' => 'id',
'ReturnValues' => "UPDATED_NEW"
]);
答案 0 :(得分:2)
update item
API会创建新项目(如果它不存在)。您可以使用ConditionExpression
停止创建新项目。
编辑现有项目的属性,或向表格添加新项目 如果它还不存在。
这意味着只有id已经存在,才会发生更新操作。此外,它将停止创建新项目。
'ConditionExpression' => 'attribute_exists(id)',
如果找不到密钥,则API会抛出以下异常。
"code": "ConditionalCheckFailedException",