ALTER TABLE: valores padrão incompatíveis não são mais permitidos em novas colunas¶
Atenção
Essa mudança de comportamento está no pacote 2023_08.
Para saber o status atual do pacote, consulte Histórico do pacote.
O comando ALTER TABLE se comporta da seguinte maneira:
- Antes da mudança:
Comandos ALTER TABLE ADD COLUMN DEFAULT permitiam adicionar uma coluna com um valor padrão incompatível com o tipo de dados da coluna. O valor padrão resultante era inutilizável. Por exemplo, embora o valor padrão 1 seja incompatível com o tipo de dados TIMESTAMP_TZ, o seguinte comando seria bem-sucedido:
ALTER TABLE t ADD COLUMN x TIMESTAMP_TZ DEFAULT 1;
- Após a mudança:
Comandos ALTER TABLE ADD COLUMN DEFAULT não permitem mais adicionar uma coluna com um valor padrão incompatível com o tipo de dados da coluna. Uma tentativa de definir um valor padrão incompatível para uma coluna falha com um erro. Por exemplo:
SQL compilation error: Expression type does not match column data type, expecting DATE but got NUMBER(1,0) for column Y
As seguintes combinações específicas falham:
Tipo de dados da coluna
Tipo de dados de valor 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
Ref: 1425