Amazon.DynamoDBv2.AmazonDynamoDBClient.CreateTable C# (CSharp) Method

CreateTable() public method

The CreateTable operation adds a new table to your account. In an AWS account, table names must be unique within each region. That is, you can have two tables with same name if you create the tables in different regions.

CreateTable is an asynchronous operation. Upon receiving a CreateTable request, DynamoDB immediately returns a response with a TableStatus of CREATING. After the table is created, DynamoDB sets the TableStatus to ACTIVE. You can perform read and write operations only on an ACTIVE table.

You can optionally define secondary indexes on the new table, as part of the CreateTable operation. If you want to create multiple tables with secondary indexes on them, you must create the tables sequentially. Only one table with secondary indexes can be in the CREATING state at any given time.

You can use the DescribeTable API to check the table status.

/// An error occurred on the server side. /// /// The number of concurrent table requests (cumulative number of tables in the CREATING, /// DELETING or UPDATING state) exceeds the maximum allowed /// of 10. /// /// /// /// Also, for tables with secondary indexes, only one of those tables can be in the CREATING /// state at any point in time. Do not attempt to create more than one such table simultaneously. /// /// /// /// The total limit of tables in the ACTIVE state is 250. /// /// /// The operation conflicts with the resource's availability. For example, you attempted /// to recreate an existing table, or tried to delete a table currently in the CREATING /// state. ///
public CreateTable ( CreateTableRequest request ) : CreateTableResponse
request Amazon.DynamoDBv2.Model.CreateTableRequest Container for the necessary parameters to execute the CreateTable service method.
return Amazon.DynamoDBv2.Model.CreateTableResponse
        public CreateTableResponse CreateTable(CreateTableRequest request)
        {
            var marshaller = new CreateTableRequestMarshaller();
            var unmarshaller = CreateTableResponseUnmarshaller.Instance;

            return Invoke<CreateTableRequest,CreateTableResponse>(request, marshaller, unmarshaller);
        }

Same methods

AmazonDynamoDBClient::CreateTable ( string tableName, List keySchema, List attributeDefinitions, ProvisionedThroughput provisionedThroughput ) : CreateTableResponse

Usage Example

        public virtual void BuildTable(AmazonDynamoDBClient ddbClient, string tableName)
        {
            Console.WriteLine("Creating table.");
            var request = new CreateTableRequest
            {
                TableName = tableName,
                AttributeDefinitions = new List<AttributeDefinition>
                {
                    new AttributeDefinition {AttributeName = "Company", AttributeType = "S"},
                    new AttributeDefinition {AttributeName = "Email", AttributeType = "S"}
                },
                KeySchema = new List<KeySchemaElement>
                {
                    new KeySchemaElement {AttributeName = "Company", KeyType = "HASH"},
                    new KeySchemaElement {AttributeName = "Email", KeyType = "RANGE"}
                },
                ProvisionedThroughput = new ProvisionedThroughput
                {
                    ReadCapacityUnits = 10,
                    WriteCapacityUnits = 5
                }
            };

            ddbClient.CreateTable(request);
            // Pause until the table is active
            WaitForStatus(ddbClient, tableName, "ACTIVE");
            Console.WriteLine("Table created and active.");
        }
All Usage Examples Of Amazon.DynamoDBv2.AmazonDynamoDBClient::CreateTable