ALTER TABLE: 新しい列における互換性のないデフォルト値の使用不可

注意

この動作変更は2023_08バンドルにあります。

バンドルの現在のステータスについては、 バンドル履歴 をご参照ください。

ALTER TABLE コマンドの動作は以下のとおりです。

変更前

ALTER TABLE ADD COLUMN DEFAULT コマンドを使用すると、列のデータ型と互換性のないデフォルト値を持つ列を追加することができました。その結果、デフォルト値は使用不可能になりました。例えば、デフォルト値の1は TIMESTAMP_TZ データ型と互換性がありませんが、以下のコマンドは成功します。

ALTER TABLE t ADD COLUMN x TIMESTAMP_TZ DEFAULT 1;

変更後

ALTER TABLE ADD COLUMN DEFAULT コマンドは、列のデータ型と互換性のないデフォルト値を持つ列を追加できなくなりました。列に互換性のないデフォルト値を設定しようとすると、エラーで失敗します。例:

SQL compilation error: Expression type does not match column data type, expecting DATE but got NUMBER(1,0) for column Y

以下の特定の組み合わせは失敗します。

列のデータ型

DEFAULT 値のデータ型

VARCHAR

BOOLEAN

DATE

BOOLEAN

TIME

BOOLEAN

TIMESTAMP_LTZ

BOOLEAN

TIMESTAMP_NTZ

BOOLEAN

TIMESTAMP_TZ

BOOLEAN

FLOAT

BOOLEAN

NUMBER

BOOLEAN

BOOLEAN

VARCHAR

DATE

FLOAT

TIME

FLOAT

TIMESTAMP_LTZ

FLOAT

TIMESTAMP_NTZ

FLOAT

TIMESTAMP_TZ

FLOAT

DATE

NUMBER

TIME

NUMBER

TIMESTAMP_LTZ

NUMBER

TIMESTAMP_NTZ

NUMBER

TIMESTAMP_TZ

NUMBER

参照: 1425