首页  >  问答  >  正文

ConditionExpression attribute_not_exists()

我尝试在数据库中插入项目时使用 ConditionExpression,但它不起作用,当 Putitem() 函数运行时,php 脚本会中断。

如果该项目不存在,我想插入该项目。

$response = $client->putItem(array(
    'TableName' => 'tablename',
    'Item' => array(
        'serialNumber'   => array('S' => 'test123'),
        'deviceType' => array('S' => '1')
    ),
    'ConditionExpression' => 'attribute_not_exists(serialNumber)'
));

我尝试 var_dump $response,但代码在上面的函数上中断。

serialNumber 它是一个分区键,应该按预期工作。

下面的代码工作正常,但他用新值替换现有项目,这是我不希望发生的情况。

$response = $client->putItem(array(
    'TableName' => 'tablename',
    'Item' => array(
        'serialNumber'   => array('S' => 'test123'),
        'deviceType' => array('S' => '1')
    )
));

P粉132730839P粉132730839227 天前415

全部回复(1)我来回复

  • P粉667649253

    P粉6676492532024-03-30 00:46:00

    当您设置的条件计算结果为 false 时,预计您会返回 CondidtionCheckFailedException。尝试将代码包装在 try/catch 块中,看看它是否按预期工作?

    try {
    $response = $client->putItem(array(
        'TableName' => 'tablename',
        'Item' => array(
            'serialNumber'   => array('S' => 'test123'),
            'deviceType' => array('S' => '1')
        )
    ));
    }
    catch(Exception $e) {
      echo $e->getMessage();
    }

    回复
    0
  • 取消回复