Ich habe versucht, ConditionExpression beim Einfügen von Elementen in die Datenbank zu verwenden, aber es funktioniert nicht. Das PHP-Skript bricht ab, wenn die Funktion Putitem() ausgeführt wird.
Ich möchte das Element einfügen, wenn es nicht existiert.
$response = $client->putItem(array( 'TableName' => 'tablename', 'Item' => array( 'serialNumber' => array('S' => 'test123'), 'deviceType' => array('S' => '1') ), 'ConditionExpression' => 'attribute_not_exists(serialNumber)' ));
Ich habe var_dump $response ausprobiert, aber der Code bricht bei der obigen Funktion ab.
serialNumber Es handelt sich um einen Partitionsschlüssel und sollte wie erwartet funktionieren.
Der folgende Code funktioniert gut, aber er ersetzt vorhandene Elemente durch neue Werte, was ich nicht möchte.
$response = $client->putItem(array( 'TableName' => 'tablename', 'Item' => array( 'serialNumber' => array('S' => 'test123'), 'deviceType' => array('S' => '1') ) ));
当您设置的条件计算结果为 false 时,预计您会返回
CondidtionCheckFailedException
。尝试将代码包装在try/catch
块中,看看它是否按预期工作?