Modificando restrições¶
Após a criação de uma restrição, você pode modificá-la das seguintes maneiras:
A restrição pode ser renomeada.
É possível modificar algumas propriedades; por exemplo, RELY.
Algumas propriedades não podem ser modificadas; por exemplo, DEFERRABLE. Para modificar essas propriedades, a restrição deve ser descartada e recriada.
Não é possível modificar a definição de coluna para uma restrição; por exemplo, adicionar novas colunas, descartar colunas existentes ou alterar a ordem das colunas. Para fazer esses tipos de alteração, a restrição deve ser descartada e recriada.
Ao modificar uma restrição, identifique-a usando o nome da restrição ou as colunas na definição da restrição, juntamente com o tipo da restrição. Também é possível identificar as chaves primárias usando a palavra-chave PRIMARY KEY, porque cada tabela pode ter apenas uma única PRIMARY KEY.
Se uma tabela com restrições for modificada, por exemplo, renomeando a tabela ou trocando a tabela por outra, as restrições serão atualizadas para refletir as alterações.
Renomeando uma restrição¶
Use a seguinte sintaxe para o comando ALTER TABLE para renomear uma restrição:
Modificando as propriedades de uma restrição¶
Use a seguinte sintaxe para o comando ALTER TABLE para modificar as propriedades de uma restrição:
Para restrições CHECK, o constraint_name é obrigatório. Além disso, você não pode modificar o expr associado a uma restrição CHECK. Para modificar o expr, a restrição CHECK deve ser descartada e recriada.
Atualmente, o Snowflake oferece suporte apenas à definição das seguintes propriedades de restrição:
[ NOT ] ENFORCED
NOVALIDATE e VALIDATE
RELY e NORELY
O Snowflake não é compatível com a configuração de ENFORCED. O Snowflake é compatível apenas com a configuração de NOVALIDATE para restrições CHECK. Consulte também Valores padrão para e propriedades ENABLE e VALIDATE.
Para obter descrições das propriedades de restrição, consulte Propriedades de restrição.
Modificando uma tabela com restrições¶
Se uma tabela com restrições for renomeada, as restrições da tabela e quaisquer restrições FOREIGN KEY que façam referência a ela serão atualizadas para fazer referência ao novo nome.
Da mesma forma, se uma tabela for trocada por outra, a tabela existente e todas as restrições dela serão mantidas na tabela trocada.
Para obter mais detalhes sobre renomeação ou troca de tabelas, consulte ALTER TABLE.