Maison  >  Questions et réponses  >  le corps du texte

ConditionExpression attribut_not_exists()

J'ai essayé d'utiliser ConditionExpression lors de l'insertion d'éléments dans la base de données mais cela ne fonctionne pas, le script php s'arrête lorsque la fonction Putitem() s'exécute.

Je souhaite insérer l'élément s'il n'existe pas.

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

J'ai essayé var_dump $response mais le code tombe en panne sur la fonction ci-dessus.

serialNumber Il s'agit d'une clé de partition et devrait fonctionner comme prévu.

Le code ci-dessous fonctionne bien mais il remplace les éléments existants par de nouvelles valeurs, ce que je ne veux pas qu'il se produise.

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

P粉132730839P粉132730839178 Il y a quelques jours367

répondre à tous(1)je répondrai

  • P粉667649253

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

    Lorsque la condition que vous avez définie est fausse, est-il prévu que vous reveniez au bloc CondidtionCheckFailedException。尝试将代码包装在 try/catch pour voir s'il fonctionne comme prévu ?

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

    répondre
    0
  • Annulerrépondre