

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# ALTER TABLE ADD および DROP COLUMN の例
<a name="r_ALTER_TABLE_COL_ex-add-drop"></a>

次の例は、ALTER TABLE を使用して基本テーブル列を追加した後に削除する方法、および依存オブジェクトがある列を削除する方法を示しています。

## 基本列の追加と削除
<a name="r_ALTER_TABLE_COL_ex-add-then-drop-a-basic-column"></a>

次の例では、スタンドアロンの FEEDBACK\$1SCORE 列を USERS テーブルに追加します。この列には 1 つの整数が含まれます。この列のデフォルト値は NULL です (フィードバックスコアなし)。

まず、PG\$1TABLE\$1DEF カタログテーブルにクエリして、USERS テーブルのスキーマを表示します。

```
column        | type                   | encoding | distkey | sortkey
--------------+------------------------+----------+---------+--------
userid        | integer                | delta    | true    |       1
username      | character(8)           | lzo      | false   |       0
firstname     | character varying(30)  | text32k  | false   |       0
lastname      | character varying(30)  | text32k  | false   |       0
city          | character varying(30)  | text32k  | false   |       0
state         | character(2)           | bytedict | false   |       0
email         | character varying(100) | lzo      | false   |       0
phone         | character(14)          | lzo      | false   |       0
likesports    | boolean                | none     | false   |       0
liketheatre   | boolean                | none     | false   |       0
likeconcerts  | boolean                | none     | false   |       0
likejazz      | boolean                | none     | false   |       0
likeclassical | boolean                | none     | false   |       0
likeopera     | boolean                | none     | false   |       0
likerock      | boolean                | none     | false   |       0
likevegas     | boolean                | none     | false   |       0
likebroadway  | boolean                | none     | false   |       0
likemusicals  | boolean                | none     | false   |       0
```

次に、feedback\$1score 列を追加します。

```
alter table users
add column feedback_score int
default NULL;
```

USERS から FEEDBACK\$1SCORE 列を選択し、追加されたことを確認します。

```
select feedback_score from users limit 5;

feedback_score
----------------
NULL
NULL
NULL
NULL
NULL
```

列を削除して元の DDL に戻します。

```
alter table users drop column feedback_score;
```

## 依存オブジェクトがある列の削除
<a name="r_ALTER_TABLE_COL_ex-dropping-a-column-with-a-dependent-object"></a>

以下の例では、依存オブジェクトがある列を削除します。その結果、依存オブジェクトも削除されます。

初めに、もう一度 FEEDBACK\$1SCORE 列を USERS テーブルに追加します。

```
alter table users
add column feedback_score int
default NULL;
```

次に、USERS テーブルから USERS\$1VIEW というビューを作成します。

```
create view users_view as select * from users;
```

次に、USERS テーブルから FEEDBACK\$1SCORE 列の削除を試みます。この DROP ステートメントではデフォルト動作 (RESTRICT) を使用します。

```
alter table users drop column feedback_score;
```

Amazon Redshift は列に別のオブジェクトが依存しているため、列を削除できないことを示すエラーメッセージが表示されます。

今度はすべての依存オブジェクトを削除するため CASCADE を指定して、FEEDBACK\$1SCORE 列の削除を再度試みます。

```
alter table users
drop column feedback_score cascade;
```