
Like any other programming language or database, AWS DynamoDB also has a list of keywords that are reserved.
If you make use of them you will get an ValidationException error.
Error: ValidationException: Invalid KeyConditionExpression:
Attribute CLOSE is a reserved keyword
How to make use of the reserved keywords
If you need to make use of the reserved keywords as an attribute name in your expression, you can replace the reserved keyword with #(some character) and add an expression "expression-attribute-names" as shown below.
aws dynamodb get-item \
--table-name InventoryMaster \
--key '{"Id":{"N":"489282"}}' \
--projection-expression "GENERAL"
aws dynamodb get-item \
--table-name InventoryMaster \
--key '{"Id":{"N":"123"}}' \
--projection-expression "#g" \
--expression-attribute-names '{"#c":"GENERAL"}'
Lis of reserved keywords
- ABORT
- ABSOLUTE
- ACTION
- ADD
- AFTER
- AGENT
- AGGREGATE
- ALL
- ALLOCATE
- ALTER
- ANALYZE
- AND
- ANY
- ARCHIVE
- ARE
- ARRAY
- AS
- ASC
- ASCII
- ASENSITIVE
- ASSERTION
- ASYMMETRIC
- AT
- ATOMIC
- ATTACH
- ATTRIBUTE
- AUTH
- AUTHORIZATION
- AUTHORIZE
- AUTO
- AVG
- BACK
- BACKUP
- BASE
- BATCH
- BEFORE
- BEGIN
- BETWEEN
- BIGINT
- BINARY
- BIT
- BLOB
- BLOCK
- BOOLEAN
- BOTH
- BREADTH
- BUCKET
- BULK
- BY
- BYTE
- CALL
- CALLED
- CALLING
- CAPACITY
- CASCADE
- CASCADED
- CASE
- CAST
- CATALOG
- CHAR
- CHARACTER
- CHECK
- CLASS
- CLOB
- CLOSE
- CLUSTER
- CLUSTERED
- CLUSTERING
- CLUSTERS
- COALESCE
- COLLATE
- COLLATION
- COLLECTION
- COLUMN
- COLUMNS
- COMBINE
- COMMENT
- COMMIT
- COMPACT
- COMPILE
- COMPRESS
- CONDITION
- CONFLICT
- CONNECT
- CONNECTION
- CONSISTENCY
- CONSISTENT
- CONSTRAINT
- CONSTRAINTS
- CONSTRUCTOR
- CONSUMED
- CONTINUE
- CONVERT
- COPY
- CORRESPONDING
- COUNT
- COUNTER
- CREATE
- CROSS
- CUBE
- CURRENT
- CURSOR
- CYCLE
- DATA
- DATABASE
- DATE
- DATETIME
- DAY
- DEALLOCATE
- DEC
- DECIMAL
- DECLARE
- DEFAULT
- DEFERRABLE
- DEFERRED
- DEFINE
- DEFINED
- DEFINITION
- DELETE
- DELIMITED
- DEPTH
- DEREF
- DESC
- DESCRIBE
- DESCRIPTOR
- DETACH
- DETERMINISTIC
- DIAGNOSTICS
- DIRECTORIES
- DISABLE
- DISCONNECT
- DISTINCT
- DISTRIBUTE
- DO
- DOMAIN
- DOUBLE
- DROP
- DUMP
- DURATION
- DYNAMIC
- EACH
- ELEMENT
- ELSE
- ELSEIF
- EMPTY
- ENABLE
- END
- EQUAL
- EQUALS
- ERROR
- ESCAPE
- ESCAPED
- EVAL
- EVALUATE
- EXCEEDED
- EXCEPT
- EXCEPTION
- EXCEPTIONS
- EXCLUSIVE
- EXEC
- EXECUTE
- EXISTS
- EXIT
- EXPLAIN
- EXPLODE
- EXPORT
- EXPRESSION
- EXTENDED
- EXTERNAL
- EXTRACT
- FAIL
- FALSE
- FAMILY
- FETCH
- FIELDS
- FILE
- FILTER
- FILTERING
- FINAL
- FINISH
- FIRST
- FIXED
- FLATTERN
- FLOAT
- FOR
- FORCE
- FOREIGN
- FORMAT
- FORWARD
- FOUND
- FREE
- FROM
- FULL
- FUNCTION
- FUNCTIONS
- GENERAL
- GENERATE
- GET
- GLOB
- GLOBAL
- GO
- GOTO
- GRANT
- GREATER
- GROUP
- GROUPING
- HANDLER
- HASH
- HAVE
- HAVING
- HEAP
- HIDDEN
- HOLD
- HOUR
- IDENTIFIED
- IDENTITY
- IF
- IGNORE
- IMMEDIATE
- IMPORT
- IN
- INCLUDING
- INCLUSIVE
- INCREMENT
- INCREMENTAL
- INDEX
- INDEXED
- INDEXES
- INDICATOR
- INFINITE
- INITIALLY
- INLINE
- INNER
- INNTER
- INOUT
- INPUT
- INSENSITIVE
- INSERT
- INSTEAD
- INT
- INTEGER
- INTERSECT
- INTERVAL
- INTO
- INVALIDATE
- IS
- ISOLATION
- ITEM
- ITEMS
- ITERATE
- JOIN
- KEY
- KEYS
- LAG
- LANGUAGE
- LARGE
- LAST
- LATERAL
- LEAD
- LEADING
- LEAVE
- LEFT
- LENGTH
- LESS
- LEVEL
- LIKE
- LIMIT
- LIMITED
- LINES
- LIST
- LOAD
- LOCAL
- LOCALTIME
- LOCALTIMESTAMP
- LOCATION
- LOCATOR
- LOCK
- LOCKS
- LOG
- LOGED
- LONG
- LOOP
- LOWER
- MAP
- MATCH
- MATERIALIZED
- MAX
- MAXLEN
- MEMBER
- MERGE
- METHOD
- METRICS
- MIN
- MINUS
- MINUTE
- MISSING
- MOD
- MODE
- MODIFIES
- MODIFY
- MODULE
- MONTH
- MULTI
- MULTISET
- NAME
- NAMES
- NATIONAL
- NATURAL
- NCHAR
- NCLOB
- NEW
- NEXT
- NO
- NONE
- NOT
- NULL
- NULLIF
- NUMBER
- NUMERIC
- OBJECT
- OF
- OFFLINE
- OFFSET
- OLD
- ON
- ONLINE
- ONLY
- OPAQUE
- OPEN
- OPERATOR
- OPTION
- OR
- ORDER
- ORDINALITY
- OTHER
- OTHERS
- OUT
- OUTER
- OUTPUT
- OVER
- OVERLAPS
- OVERRIDE
- OWNER
- PAD
- PARALLEL
- PARAMETER
- PARAMETERS
- PARTIAL
- PARTITION
- PARTITIONED
- PARTITIONS
- PATH
- PERCENT
- PERCENTILE
- PERMISSION
- PERMISSIONS
- PIPE
- PIPELINED
- PLAN
- POOL
- POSITION
- PRECISION
- PREPARE
- PRESERVE
- PRIMARY
- PRIOR
- PRIVATE
- PRIVILEGES
- PROCEDURE
- PROCESSED
- PROJECT
- PROJECTION
- PROPERTY
- PROVISIONING
- PUBLIC
- PUT
- QUERY
- QUIT
- QUORUM
- RAISE
- RANDOM
- RANGE
- RANK
- RAW
- READ
- READS
- REAL
- REBUILD
- RECORD
- RECURSIVE
- REDUCE
- REF
- REFERENCE
- REFERENCES
- REFERENCING
- REGEXP
- REGION
- REINDEX
- RELATIVE
- RELEASE
- REMAINDER
- RENAME
- REPEAT
- REPLACE
- REQUEST
- RESET
- RESIGNAL
- RESOURCE
- RESPONSE
- RESTORE
- RESTRICT
- RESULT
- RETURN
- RETURNING
- RETURNS
- REVERSE
- REVOKE
- RIGHT
- ROLE
- ROLES
- ROLLBACK
- ROLLUP
- ROUTINE
- ROW
- ROWS
- RULE
- RULES
- SAMPLE
- SATISFIES
- SAVE
- SAVEPOINT
- SCAN
- SCHEMA
- SCOPE
- SCROLL
- SEARCH
- SECOND
- SECTION
- SEGMENT
- SEGMENTS
- SELECT
- SELF
- SEMI
- SENSITIVE
- SEPARATE
- SEQUENCE
- SERIALIZABLE
- SESSION
- SET
- SETS
- SHARD
- SHARE
- SHARED
- SHORT
- SHOW
- SIGNAL
- SIMILAR
- SIZE
- SKEWED
- SMALLINT
- SNAPSHOT
- SOME
- SOURCE
- SPACE
- SPACES
- SPARSE
- SPECIFIC
- SPECIFICTYPE
- SPLIT
- SQL
- SQLCODE
- SQLERROR
- SQLEXCEPTION
- SQLSTATE
- SQLWARNING
- START
- STATE
- STATIC
- STATUS
- STORAGE
- STORE
- STORED
- STREAM
- STRING
- STRUCT
- STYLE
- SUB
- SUBMULTISET
- SUBPARTITION
- SUBSTRING
- SUBTYPE
- SUM
- SUPER
- SYMMETRIC
- SYNONYM
- SYSTEM
- TABLE
- TABLESAMPLE
- TEMP
- TEMPORARY
- TERMINATED
- TEXT
- THAN
- THEN
- THROUGHPUT
- TIME
- TIMESTAMP
- TIMEZONE
- TINYINT
- TO
- TOKEN
- TOTAL
- TOUCH
- TRAILING
- TRANSACTION
- TRANSFORM
- TRANSLATE
- TRANSLATION
- TREAT
- TRIGGER
- TRIM
- TRUE
- TRUNCATE
- TTL
- TUPLE
- TYPE
- UNDER
- UNDO
- UNION
- UNIQUE
- UNIT
- UNKNOWN
- UNLOGGED
- UNNEST
- UNPROCESSED
- UNSIGNED
- UNTIL
- UPDATE
- UPPER
- URL
- USAGE
- USE
- USER
- USERS
- USING
- UUID
- VACUUM
- VALUE
- VALUED
- VALUES
- VARCHAR
- VARIABLE
- VARIANCE
- VARINT
- VARYING
- VIEW
- VIEWS
- VIRTUAL
- VOID
- WAIT
- WHEN
- WHENEVER
- WHERE
- WHILE
- WINDOW
- WITH
- WITHIN
- WITHOUT
- WORK
- WRAPPED
- WRITE
- YEAR
- ZONE
Note: These reserved keywords are not case-sensitive is a important point to remember.
-
Have Questions? Post them here!
More Posts related to AWS,
- Create S3 bucket and upload files using AWS Toolkit for Visual Studio Code
- Get the total size and number of objects of a AWS S3 bucket and folders
- Create an S3 bucket in a specific AWS region using CLI Command
- [Solution] AWS Java SDK S3 AmazonS3Exception InvalidAccessKeyId
- Fix AWS CLI 2 SignatureDoesNotMatch Error - Signature we calculated does not match
- 573 List of reserved keywords in AWS DynamoDB
- Quick way to setup AWS DynamoDB locally on macOS
- [Solution] com.amazonaws.dynamodb.v20120810 MissingAuthenticationToken Key Id or X.509 certificate
- Quick way to install AWS CLI for macOS Terminal
- Setting and Updating AWS CLI Configuration
- AWS S3 CLI BucketAlreadyExists when calling CreateBucket Error make_bucket failed
- How to install AWS Toolkit for Visual Studio Code
- Create S3 bucket using AWS CLI Command mb
- Fix: zsh: command not found: aws (Mac/macOS)
- How to install AWS CLI on Ubuntu
- Fix: Amazon Linux bash: sudo: command not found
- How to Setup AWS Credentials using Visual Studio Code
- AW3 CLI command to get list of all region names
- Most Essencial AWS CLI 2 S3 ls Command Options
- Install AWS CLI using Brew Command
More Posts:
- Format Python Code in Visual Studio Code (VS Code) - Python
- ActivityManager Warning: Activity not started, its current task has been brought to the front - Android
- No connection available Use Connect-SPOService before running this CmdLet - SharePoint
- SharePoint - Use Today's Date Time in list view filter and calculated column - SharePoint
- Syntax error, parameterized types are only available if source level is 1.5 or greater [Java] - Eclipse
- Big Sur unsupported Mac [macOS] - MacOS
- Permanently set $PATH variable in Mac Zsh shell - MacOS
- Fix zsh: permission denied: script.sh - zsh