UpdateItem

Description

This function makes changes to an existing item's attributes, or adds a new item to the table, if the item does not exist. Using this function, you can also perform a conditional update on an existing item.

For more information, see UpdateItem.

Category

History

ColdFusion (2021 release): Added this function.

Syntax

serviceHandle.updateItem(requestParameters)

Parameters

See request parameters of UpdateItem.

Example

<cfscript> 
    cred = { 
        "credentialAlias" : "myalias", 
        "vendorName" : "AWS", 
        "region" : "us-east-2", 
        "secretAccessKey" : "xxxxx", 
        "accessKeyId" : "xxxx" 
  } 
     
    conf={ 
        "serviceName"="DYNAMODB" 
    } 
     
    dynamo=getCloudService(cred, conf) 
    tableName="NewProductCatalog" 
 
    Stage 1: Create a table 
    createTableStruct={ 
        "TableName": "#tableName#", 
        "KeySchema": [ 
            { 
                "AttributeName": "id", 
                "KeyType": "HASH" 
            } 
        ], 
        "AttributeDefinitions": [ 
            { 
                "AttributeName": "id", 
                "AttributeType": "N" 
            } 
        ], 
        "ProvisionedThroughput": { 
            "ReadCapacityUnits": 10, 
            "WriteCapacityUnits": 10 
        } 
    } 
 
    dynamo.createTable(createTableStruct) 
    sleep(20000) 
 
    // Stage 2: Insert an item 
    putItemStruct = { 
        "TableName": "#tableName#", 
        "Item":{ 
            "id": { 
                "N": 550 
            }, 
            "Title": { 
                "S": "Macbeth" 
            }, 
            "Price": { 
                "N": "2" 
            } 
        }, 
        "ReturnValues": "ALL_OLD" 
    } 
    dynamo.putItem(putItemStruct,{"hasType": true}) 
    sleep(20000) 
    //abort; 
 
    // Stage 3: Update the item that was inserted 
    updateItemStruct={ 
        "TableName": "#tableName#", 
        "Key": { 
            "id": { 
                "N": 550 
            } 
        }, 
        "UpdateExpression": "set Title = :val1", 
        "ConditionExpression": "Price = :val2", 
        "ExpressionAttributeValues": { 
            ":val1": {"S": "Hamlet"}, 
            ":val2": {"N": "2"} 
        }, 
        "ReturnValues": "ALL_NEW" 
    } 
    try{ 
        result = dynamo.updateItem(updateItemStruct, {"hasType": true}) 
        if(result.Attributes.Title.S == "Hamlet") { 
            writeOutput("Title changed successfully<br/>") 
        } else { 
            writeOutput("Failed to change the title<br/>") 
        } 
    } 
    catch (any e){ 
        writeDump(e) 
    } 
         
</cfscript>

Get help faster and easier

New user?