Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso descartar uma restrição não nula no Oracle quando não sei o nome da restrição?

alter table MYTABLE modify (MYCOLUMN null);

No Oracle, restrições não nulas são criadas automaticamente quando não nulo é especificado para uma coluna. Da mesma forma, eles são descartados automaticamente quando a coluna é alterada para permitir nulos.

Esclarecendo a pergunta revisada :esta solução se aplica apenas a restrições criadas para colunas "não nulas". Se você especificar "Chave primária" ou uma restrição de verificação na definição da coluna sem nomeá-la, você terá um nome gerado pelo sistema para a restrição (e o índice, para a chave primária). Nesses casos, você precisa saber o nome para soltá-lo. O melhor conselho é evitar o cenário certificando-se de especificar um nome para todas as restrições diferentes de "not null". Se você se encontrar na situação em que precisa eliminar uma dessas restrições genericamente, provavelmente precisará recorrer à PL/SQL e às tabelas de definição de dados.