搜尋

首頁  >  問答  >  主體

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粉132730839243 天前434

全部回覆(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
  • 取消回覆