

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# テーブルの管理
<a name="working.manage-tables"></a>

**重要**  
サポート終了通知: 既存のお客様は、07/31/2025 のサポート終了まで Amazon QLDB を使用できます。詳細については、[「Amazon QLDB 台帳を Amazon Aurora PostgreSQL に移行する](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)」を参照してください。

このセクションでは、Amazon QLDB の `DROP TABLE` および `UNDROP TABLE` ステートメントを使用してテーブルを管理する方法について説明します。また、テーブルの作成中にテーブルにタグを付ける方法についても説明します。作成できるアクティブなテーブル数と合計テーブル数のクォータは、[Amazon QLDB でのクォータと制限](limits.md#limits.fixed) で定義します。

**Topics**
+ [

## 作成時のテーブルのタグ付け
](#working.manage-tables.tags)
+ [

## テーブルの削除
](#working.manage-tables.drop)
+ [

## 非アクティブなテーブルの履歴に対するクエリの実行
](#working.history.inactive-table)
+ [

## テーブルを再アクティブ化
](#working.history.undrop-table)

## 作成時のテーブルのタグ付け
<a name="working.manage-tables.tags"></a>

**注記**  
 作成時のテーブルのタグ付けは、現在 `STANDARD` 許可モードの台帳のみでサポートされています。

テーブルリソースにタグ付けすることができます。既存のテーブルのタグを管理するには、 AWS マネジメントコンソール または API オペレーション `TagResource`、`UntagResource`、および `ListTagsForResource` を使用します。詳細については、「[Amazon QLDB リソースのタグ付け](tagging.md)」を参照してください。

テーブルの作成中に、QLDB コンソールを使用するか、`CREATE TABLE` PartiQL ステートメントで指定して、テーブルタグを定義することもできます。次の例では、`Vehicle` という名前のテーブルをタグ `environment=production` を付けて作成します。

```
CREATE TABLE Vehicle WITH (aws_tags = `{'environment': 'production'}`)
```

作成時にリソースにタグ付けすることで、リソース作成後にカスタムタグ付けスクリプトを実行する必要がなくなります。テーブルにタグを付けると、それらのタグに基づいてテーブルへのアクセスを制御できます。例えば、特定のタグを持つテーブルにのみフルアクセスを付与できます。JSON ポリシーの例については、「[テーブルタグに基づくすべてのアクションへのフルアクセス](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-full-tags)」を参照してください。

## テーブルの削除
<a name="working.manage-tables.drop"></a>

テーブルを削除するには、基本 [DROP TABLE](ql-reference.drop-table.md) ステートメントを使用します。QLDB でのテーブルの削除は、テーブルを無効にしているだけです。

例えば、次のステートメントは、`VehicleRegistration` テーブルを非アクティブにします。

```
DROP TABLE VehicleRegistration
```

`DROP TABLE` ステートメントは、テーブルのシステムで割り当てられた ID を返します。`VehicleRegistration` のステータスは、システムカタログテーブル [information\$1schema.user\$1tables](working.catalog.md) で `INACTIVE` になっています。

```
SELECT status FROM information_schema.user_tables
WHERE name = 'VehicleRegistration'
```

## 非アクティブなテーブルの履歴に対するクエリの実行
<a name="working.history.inactive-table"></a>

最初の入力引数として、テーブル名ではなくテーブル ID を渡しても、QLDB [履歴関数](working.history.md#working.history.function) のクエリを実行できます。非アクティブなテーブルの履歴をクエリするには、テーブル ID を使用する必要があります。テーブルが非アクティブ化された後は、テーブル名ではその履歴に対してクエリを実行できなくなります。

まず、システムカタログテーブルをクエリして、テーブル ID を見つけます。たとえば、次のクエリは `VehicleRegistration` テーブルの `tableId` を返します。

```
SELECT tableId FROM information_schema.user_tables
WHERE name = 'VehicleRegistration'
```

次に、この ID を使用して、[リビジョン履歴のクエリの実行](working.history.md) から同じ履歴クエリを実行できます。以下の例では、テーブル ID `5PLf9SXwndd63lPaSIa0O6`、ドキュメント ID `ADR2Ll1fGsU4Jr4EqTdnQF` の履歴に対してクエリを実行しています。テーブル ID は文字列リテラルであり、単一引用符で囲む必要があります。

```
--replace both the table and document IDs with your values
SELECT * FROM history('5PLf9SXwndd63lPaSIa0O6', `2000T`, `2019-06-05T23:59:59Z`) AS h
WHERE h.metadata.id = 'ADR2Ll1fGsU4Jr4EqTdnQF'
```

## テーブルを再アクティブ化
<a name="working.history.undrop-table"></a>

QLDB でテーブルを非アクティブ化したら、[テーブルの削除の取り消し](ql-reference.undrop-table.md) ステートメントを使用してテーブルを再度アクティブにすることができます。

まず、`information_schema.user_tables` からテーブル ID を見つけます。たとえば、次のクエリは `VehicleRegistration` テーブルの `tableId` を返します。ステータスは `INACTIVE` である必要があります。

```
SELECT tableId FROM information_schema.user_tables
WHERE name = 'VehicleRegistration'
```

次に、この ID を使用してテーブルを再度有効にします。以下に、テーブル ID `5PLf9SXwndd63lPaSIa0O6` の削除を取り消す例を示します。この場合、テーブル ID は、二重引用符で囲まれた一意の識別子です。

```
UNDROP TABLE "5PLf9SXwndd63lPaSIa0O6"
```

これで、`VehicleRegistration` のステータスが `ACTIVE` になります。

インデックスを作成、説明、および削除する方法については、[インデックスの管理](working.manage-indexes.md) に進んでください。