CreateTable
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 action to check the table status.
Request Syntax
{
"AttributeDefinitions": [
{
"AttributeName": "string",
"AttributeType": "string"
}
],
"BillingMode": "string",
"DeletionProtectionEnabled": boolean,
"GlobalSecondaryIndexes": [
{
"IndexName": "string",
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"OnDemandThroughput": {
"MaxReadRequestUnits": number,
"MaxWriteRequestUnits": number
},
"Projection": {
"NonKeyAttributes": [ "string" ],
"ProjectionType": "string"
},
"ProvisionedThroughput": {
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
},
"WarmThroughput": {
"ReadUnitsPerSecond": number,
"WriteUnitsPerSecond": number
}
}
],
"GlobalTableSettingsReplicationMode": "string",
"GlobalTableSourceArn": "string",
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"LocalSecondaryIndexes": [
{
"IndexName": "string",
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"Projection": {
"NonKeyAttributes": [ "string" ],
"ProjectionType": "string"
}
}
],
"OnDemandThroughput": {
"MaxReadRequestUnits": number,
"MaxWriteRequestUnits": number
},
"ProvisionedThroughput": {
"ReadCapacityUnits": number,
"WriteCapacityUnits": number
},
"ResourcePolicy": "string",
"SSESpecification": {
"Enabled": boolean,
"KMSMasterKeyId": "string",
"SSEType": "string"
},
"StreamSpecification": {
"StreamEnabled": boolean,
"StreamViewType": "string"
},
"TableClass": "string",
"TableName": "string",
"Tags": [
{
"Key": "string",
"Value": "string"
}
],
"VectorIndexes": [
{
"Dimensions": number,
"DistanceFunction": "string",
"IndexName": "string",
"Projection": {
"NonKeyAttributes": [ "string" ],
"ProjectionType": "string"
},
"SearchSchema": [
{
"AttributeName": "string",
"SearchSchemaElementType": "string"
}
],
"VectorAttribute": {
"AttributeName": "string"
}
}
],
"WarmThroughput": {
"ReadUnitsPerSecond": number,
"WriteUnitsPerSecond": number
}
}
Request Parameters
The request accepts the following data in JSON format.
Note
In the following list, the required parameters are described first.