DynamoDB: Table already exists
TL;DR — 操作は対象テーブルを 作成 しようとしていますが、その名前はこのアカウント + リージョンですでに使用済みです。復元(RestoreTableFromBackup / RestoreTableToPointInTime)は TableAlreadyExistsException をスローし、CreateTable と ImportTable は同じ状況を ResourceInUseException として報告します。新しい対象名を選んでください。復元とインポートは決して既存のテーブルに書き込めません。
意味
TableAlreadyExistsException: A target table with the specified name already exists
ResourceInUseException: Table already exists: my-table復元とインポート操作は常に 真新しいテーブルを作成 します。ライブのテーブルにマージしたり上書きしたりできません。対象名が同じアカウントとリージョン内の既存のテーブル(その状態が何であれ)に解決される場合、リクエストは前もって失敗します。どの例外が見えるかは API によります: 復元ファミリーは独自の TableAlreadyExistsException を持ち、CreateTable と ImportTable は総合的な ResourceInUseException を出します。
発生する理由
- 元の名前にバックアップを復元 — 自然な本能(「テーブルを元に戻す」)が、まだ存在するテーブルと衝突する。
- インポートや IaC デプロイの再実行 — 再試行された
ImportTable、またはスタックの状態外にすでに存在するテーブルを作成しようとする CloudFormation/Terraform/CDK スタック。 - create-then-retry の競合 — 最初の
CreateTableが成功した(またはまだCREATING)ため、リトライが名前を使用済みと見つける。 - 環境の衝突 — 2つのステージ/環境がアカウントを共有し、両方がプレフィックスなしの名前を望む。
修正方法
新しい名前に復元してから切り替えます —
my-table-restoredとして復元し、データを検証し、アプリケーションを向け直します(または古いテーブルを削除し、消えたら元の名前で再度復元します):aws dynamodb restore-table-from-backup \ --target-table-name my-table-restored \ --backup-arn arn:aws:dynamodb:...:table/my-table/backup/...テーブルを置き換えるつもりなら、まず既存のものを削除し、削除が完了するまで待ちます。テーブルが
DELETING状態の間、名前は使用済みのままです(そのとき試みた復元はTableInUseExceptionで失敗します。CreateTable側は ResourceInUseException を参照)。インポートには、未使用の対象名を選びます。
ImportTableは新しいテーブルのみを作成します。既存のテーブルにデータをロードするには、代わりにBatchWriteItem/PutItemで書き込みます。IaC の再試行には、作成と戦うのではなく、既存のテーブルをスタックの状態にインポート(またはリネーム)します。
実際に何が存在するか確認します — 同じリージョン/アカウントでの
aws dynamodb list-tablesが、名前が本当に空いているか決着させます。
切り替え前に復元したテーブルを検証するのは、人々がスキップする安全なステップです。DynoTable デスクトップアプリ は復元されたテーブルと元のテーブルを並べて置くため、スキーマを差分し、アイテムを先にスポットチェックできます。そして復元したテーブルの実行コストを見積もっているなら、DynamoDB 料金計算ツール が両方のキャパシティモードをカバーします。
関連するエラー
- ResourceInUseException — 同じ衝突の
CreateTable版。 - Backup not found
- Export requires PITR
- Learn: Backups & point-in-time recovery
References
- RestoreTableFromBackup — Amazon DynamoDB API Reference
- RestoreTableToPointInTime — Amazon DynamoDB API Reference
- CreateTable — Amazon DynamoDB API Reference
- Amazon S3 import validation errors — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。