dynobase-icon
Dynobase

Error: ValidationException: Invalid KeyConditionExpression: Attribute name is a reserved keyword;

Solution

DynamoDB has a list of reserved keywords that you cannot use in your queries or scans directly. If you need to write an expression that contains one of them, you need to use ExpressionAttributeNames to replace reserved word with a placeholder. For example, this query with reserved keyword:

        params = {
            TableName : ‘MY_TABLE’,
            FilterExpression: "timestamp BETWEEN :startDate AND :endDate",
            ExpressionAttributeValues: { 
                ":startDate": ""+startDate, 
                ":endDate": ""+endDate
            } 
        }
        

Replace with:

 
        params = {
            TableName : ‘MY_TABLE’,
            FilterExpression: "#dynobase_timestamp BETWEEN :startDate AND :endDate",
            ExpressionAttributeValues: { 
                ":startDate": startDate, 
                ":endDate": endDate
            },
            ExpressionAttributeNames: { "#dynobase_timestamp": "timestamp" }
        }
        

Dynobase is a Professional GUI Client for DynamoDB

Start your 7-day free trial today

Product Features

© 2020 Dynobase