no, you cant do it, only adding global secondary index is possible to an existing table.

from documentation:

Local secondary indexes on a table are created when the table is created. 
Answer from Eyal Ch on Stack Overflow
🌐
Dynamodbguide
dynamodbguide.com › local secondary indexes
Local Secondary Indexes | DynamoDB, explained.
Unfortunately, local secondary indexes must be specified at time of table creation. First, we'll need to delete our table: $ aws dynamodb delete-table \ --table-name UserOrdersTable \ $LOCAL
🌐
AWS
docs.aws.amazon.com › amazon dynamodb › developer guide › working with tables, items, queries, scans, and indexes › improving data access with secondary indexes in dynamodb › local secondary indexes
Local secondary indexes - Amazon DynamoDB
Some applications only need to query data using the base table's primary key. However, there might be situations where an alternative sort key would be helpful. To give your application a choice of sort keys, you can create one or more local secondary indexes on an Amazon DynamoDB table and issue Query or Scan requests against these indexes.
Discussions

amazon web services - How can I create a local secondary index in AWS DynamoDB? - Stack Overflow
i am trying to create a local secondary index via the management console. After selecting the desired table in DynamoDB, I choose the "index" tab and click "Create Index". Then I am prompted with the More on stackoverflow.com
🌐 stackoverflow.com
amazon web services - Can you add a global secondary index to dynamodb after table has been created? - Stack Overflow
Yes, you can add a global secondary index to a DynamoDB table after its creation; see here, under "Global Secondary Indexes on the Fly". More on stackoverflow.com
🌐 stackoverflow.com
amazon web services - Why does adding a secondary index to a dynamodb table via cdk requires a recreation of the table? - Stack Overflow
You are mistaking Global and Local secondary indexes. Local can not be created after table creation, only global can. More on stackoverflow.com
🌐 stackoverflow.com
November 30, 2020
amazon web services - Create DynamoDB Global Secondary Index after table creation in Java - Stack Overflow
Communities for your favorite technologies. Explore all Collectives · Stack Overflow for Teams is now called Stack Internal. Bring the best of human thought and AI automation together at your work More on stackoverflow.com
🌐 stackoverflow.com
July 5, 2021
🌐
AWS
docs.aws.amazon.com › amazon dynamodb › developer guide › working with tables, items, queries, scans, and indexes › improving data access with secondary indexes in dynamodb
Improving data access with secondary indexes in DynamoDB - Amazon DynamoDB
April 15, 2026 - The following table shows the main differences between a global secondary index and a local secondary index. If you want to create more than one table with secondary indexes, you must do so sequentially. For example, you would create the first table and wait for it to become ACTIVE, create the next table and wait for it to become ACTIVE, and so on. If you try to concurrently create more than one table with a secondary index, DynamoDB returns a LimitExceededException.
🌐
Medium
medium.com › @jun711.g › create-secondary-indexes-for-aws-dynamodb-to-prevent-scanning-3b210b2764bf
Create Secondary Indexes For AWS DynamoDB to Prevent Scanning | by Jun711 | Medium
August 8, 2019 - Note that a Local Secondary Index can only be created during DynamoDB table creation. You can create a LSI on AWS DynamoDB Console. Go to AWS DynamoDB console and click on Create table button to create a DDB table.
🌐
OneUptime
oneuptime.com › home › blog › how to implement local secondary indexes in dynamodb
How to Implement Local Secondary Indexes in DynamoDB
February 2, 2026 - Args: user_id: The user's unique identifier start_date: ISO format start date end_date: ISO format end date ascending: If True, return oldest first; if False, newest first Returns: List of order items sorted by creation date """ table = get_dynamodb_table() response = table.query( IndexName='createdAt-index', KeyConditionExpression=( Key('userId').eq(user_id) & Key('createdAt').between(start_date, end_date) ), ScanIndexForward=ascending ) print(f"Found {response['Count']} orders for user {user_id}") return response['Items'] def get_orders_by_status( user_id: str, status: str, consistent_read: bool = False ) -> List[dict]: """ Query orders with a specific status using the status LSI.
Find elsewhere
Top answer
1 of 3
42

Edit (January 2015):

Yes, you can add a global secondary index to a DynamoDB table after its creation; see here, under "Global Secondary Indexes on the Fly".


Old Answer (no longer strictly correct):

No, the hash key, range key, and indexes of the table cannot be modified after the table has been created. You can easily add elements that are not hash keys, range keys, or indexed elements after table creation, though.

From the UpdateTable API docs:

You cannot add, modify or delete indexes using UpdateTable. Indexes can only be defined at table creation time.

To the extent possible, you should really try to anticipate current and future query requirements and design the table and indexes accordingly.

You could always migrate the data to a new table if need be.

2 of 3
31

Just got an email from Amazon:

Dear Amazon DynamoDB Customer,

Global Secondary Indexes (GSI) enable you to perform more efficient queries. Now, you can add or delete GSIs from your table at any time, instead of just during table creation. GSIs can be added via the DynamoDB console or a simple API call. While the GSI is being added or deleted, the DynamoDB table can still handle live traffic and provide continuous service at the provisioned throughput level. To learn more about Online Indexing, please read our blog or visit the documentation page for more technical and operational details.

If you have any questions or feedback about Online Indexing, please email us.

Sincerely, The Amazon DynamoDB Team

🌐
CloudThat
cloudthat.com › home › blogs › understanding amazon dynamodb global and local secondary indexes (lsi)
Understanding Amazon DynamoDB Global and Local Secondary Indexes (LSI)
December 22, 2025 - GSI: Amazon DynamoDB backfills the index from pre-existing data; it can be inserted after the table is created. LSI: An LSI cannot be added or removed after the table has been created; it must be defined at the time of table creation.
🌐
Jayendra's Cloud Certification Blog
jayendrapatil.com › aws-dynamodb-secondary-indexes
AWS DynamoDB Secondary Indexes
June 30, 2023 - Hi Sandip, You can define a maximum of 5 local secondary indexes and 5 global secondary indexes per table. Refer DynamoDB limits · In regard to DynamoDB, can I modify the index once it is created? Yes, if it is a primary hash key index Yes, if it is a Global secondary index No Yes, if it is a local secondary index. As per my understanding it should be Yes, if it is a Global secondary index.Please advise · Agree do u get some clarification here from someone? Thats right Hina, AWS now allows you to modify global secondary indexes after creation.
🌐
AWS
docs.aws.amazon.com › amazon dynamodb › developer guide › working with tables, items, queries, scans, and indexes › improving data access with secondary indexes in dynamodb › local secondary indexes › working with local secondary indexes: java
Working with Local Secondary Indexes: Java - Amazon DynamoDB
April 16, 2026 - You must wait until DynamoDB creates the table and sets the table status to ACTIVE. After that, you can begin putting data items into the table. To get information about local secondary indexes on a table, use the describeTable method.
🌐
James's Knowledge Graph
jamestharpe.com › aws-dynamodb-local-secondary-index-existing-table-cloudformation
DynamoDB & CloudFormation: Add a Local Secondary Index to Existing Table | James's Knowledge Graph
An error occurred: JobsDynamoDBTable - Property AttributeDefinitions is inconsistent with the KeySchema of the table and the secondary indexes. Of course! The AttributeDefinitions must be updated to include the modified property. Once updated, the entire JobsDynamoDBTable CloudFormation resource element now looked like this: # app.cloudformation.yaml JobsDynamoDBTable: Type: 'AWS::DynamoDB::Table' Properties: TableName: Jobs AttributeDefinitions: - AttributeName: jobId AttributeType: S - AttributeName: name AttributeType: S # Required for LocalSecondaryIndex - AttributeName: modified Attribute
🌐
AWS
docs.aws.amazon.com › amazon dynamodb › developer guide › working with tables, items, queries, scans, and indexes › improving data access with secondary indexes in dynamodb › using global secondary indexes in dynamodb › managing global secondary indexes in dynamodb
Managing Global Secondary Indexes in DynamoDB - Amazon DynamoDB
When you add a new global secondary index to an existing table, the table continues to be available while the index is being built. However, the new index is not available for Query operations until its status changes from CREATING to ACTIVE. Global secondary index creation does not use Application ...
🌐
Rahulpnath
rahulpnath.com › blog › local-secondary-index-dynamodb
Improving Queries Using Local Secondary Index in DynamoDB with .NET | Rahul Nath
June 27, 2023 - Learn how to create, set up and use a Local Secondary Index (GSI) in DynamoDB for more efficient data access and optimizing cost.
🌐
Dynamodbguide
dynamodbguide.com › global secondary indexes
Global Secondary Indexes | DynamoDB, explained.
Like local secondary indexes, you may specify a global secondary index when you initially create a table. However, you may also add a global secondary index after a table is already created. DynamoDB will backfill the global secondary index ...
🌐
TutorialsPoint
tutorialspoint.com › dynamodb › dynamodb_local_secondary_indexes.htm
DynamoDB - Local Secondary Indexes
On creation of a local secondary index, you specify a sort key attribute and its data type. When you write an item, its type must match the data type of the key schema if the item defines an attribute of an index key.
🌐
ScyllaDB
scylladb.com › home › dynamodb secondary index
What is a DynamoDB Secondary Index? Definition & FAQs | ScyllaDB
August 7, 2025 - LSI Limitations: LSIs must be defined at table creation and share the same partition key as the base table, which can constrain flexibility and future design changes. Read Lag: Since GSIs support only eventual consistency, reads may lag behind writes. Scale: If the combined size of a partition’s items and their LSI entries exceeds 10 GB, further writes to that partition will fail. Yes, ScyllaDB offers both global and local secondary indexes as alternatives to DynamoDB’s indexing approach.