ALTER TABLE: 新しい列における互換性のないデフォルト値の使用不可¶
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